Hi Chris,

#2 is probably the best to ensure repeatability in the order you want.  It
also prevents inadvertent re-ordering if a new sql file is introduced into
the sql directory.  In our project, we use srcFiles rather than fileset:

<srcFiles>
    <srcFile>[file1]</srcFile>
    <srcFile>[file2}</srcFile>
    ...
</srcFiles>

HTH,
John Singleton

On Thu, Oct 14, 2010 at 9:25 AM, Chris Odney <[email protected]> wrote:

> Hi,
>
> I am facing some problem in ordering the sql execution.
>
> We have one sql script file for each table under one directory. Ex: There
> is
> user.sql and role.sql in the directory c:\SqlScripts. We are using the sql
> maven plugin to execute these sql files.
>
> The role table has a Foriegn key to the user table and the execution is
> failing because the plugin is trying to execute the role.sql before
> user.sql. I cannot use the  orderfile attribute as we specify the <fileset>
> as c:\SqlScripts\*.sql.
>
> How do I overcome this problem?
>
> I see 2 solutions:
>
> 1) Merge all scripts into one file in the creation order, the script to
> create role comes after the script to create user.
>
> 2)Remove the * wildcard and specify each file in the <filelist> attribute
> in
> the order of execution.
>
> 3)Number the name of the files according to the execution order ex:
> 1_user.sql, 2_role.sql and use the 'ascending' orderfile attribute(not sure
> if this would work though, as the ordering may not be applied)
>
> Any more elegant solutions?
>
> Thank you,
> Chris.
>

Reply via email to