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.
>