logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

SQL::Translator::Filter::Globals - Add global fields and indices to all tables.

Author

       Mark Addison <grommit@users.sourceforge.net>

perl v5.40.0                                       2024-11-23              SQL::Translator::Filter::Globals(3pm)

Bugs

       Will generate duplicate indices if an index already exists on a table the same as one added globally.

       Will generate duplicate constraints if a constraint already exists on a table the same as one added
       globally.

Description

       Adds global fields, indices and constraints to all tables in the schema.  The globals to add can either
       be defined in the filter args or using a _GLOBAL_ table (see below).

       If a table already contains a field with the same name as a global then it is skipped for that table.

   The_GLOBAL_Table
       An alternative to using the args is to add a table called "_GLOBAL_" to the schema and then just use the
       filter. Any fields and indices defined on this table will be added to all the tables in the schema and
       the _GLOBAL_ table removed.

       The name of the global can be changed using a "global_table" arg to the filter.

Name

       SQL::Translator::Filter::Globals - Add global fields and indices to all tables.

See Also

perl(1), SQL::Translator

Synopsis

         # e.g. Add timestamp field to all tables.
         use SQL::Translator;

         my $sqlt = SQL::Translator->new(
             from => 'MySQL',
             to   => 'MySQL',
             filters => [
               Globals => {
                   fields => [
                       {
                           name => 'modified'
                           data_type => 'TIMESTAMP'
                       }
                   ],
                   indices => [
                       {
                           fields => 'modifed',
                       },
                   ]
                   constraints => [
                       {
                       }
                   ]
               },
             ],
         ) || die "SQLFairy error : ".SQL::Translator->error;
         my $sql = $sqlt->translate || die "SQLFairy error : ".$sqlt->error;

Todo

       Some extra data values that can be used to control the global addition. e.g.  'skip_global'.

See Also