Let's get talking about being able to define table indexes in the DBIC schema 
in the same way the `extras' field is a passthru to SQL::Translator in the 
(experimental) Schema->deploy():

  __PACKAGE__->add_columns(
        id     => { data_type => 'INT', is_auto_increment => 1, extras => { 
unsigned => 1 }, },
        author => { data_type => 'INT', extras => { unsigned => 1 }, },
  );

  __PACKAGE__->add_indexes(
    author_idx => { columns => [ 'author' ], options => [ ... ] },
  );

When $schema->deploy(), causes SQL::Translator object to be called like:

  $tr->schema->get_table('table_name')->add_index(
          name => 'author_idx',
          fields => [ 'author' ],
      options => [ ... ],
  );

foreach table index prior to the deployment of the schema to the storage.  The 
options (and any other args) could be passthru to 
SQL::Translator::Schema::Table->add_index(), with the DBIC key 'columns' 
remapped to the SQLT key 'fields'.

Thoughts?

Eric Waters

_______________________________________________
List: http://lists.rawmode.org/cgi-bin/mailman/listinfo/dbix-class
Wiki: http://dbix-class.shadowcatsystems.co.uk/
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/trunk/DBIx-Class/
Searchable Archive: http://www.mail-archive.com/dbix-class@lists.rawmode.org/

Reply via email to