On 16 May 2008, at 14:56, Matt S Trout wrote:

On Thu, May 15, 2008 at 10:53:20AM -0700, Ryan D Johnson wrote:
The specific problem with the old naming code was that it was
unstable. I might have a constraint foo today which tomorrow the sqlt
layer decided to name foo_2 (because there's a new constraint it wants
to name foo). This is bad for exactly the same reasons that changing
from the old naming code to the new naming code sucks.

The SQLT diffing code needs to compare a hash of the -nature- of the
constraint instead of the name.

Then constraints can be renamed at will, and the code can go "well, eh,
the constraint/index is called X here but who cares?". Think of it as
somewhat similar to diff's ignore whitespace option.

Then you can use unstable naming, stable naming, we can bugfix the naming in future (the new one won't be perfect, it never is first time :), and
who fucking cares.

Fancy having a go? You were right to not try and maintain compat within the changes you made but we -do- need to fix forward compatibility for the
upgrade path.

SQLT::Diff already supports ignoring the names of indexs and constraints. This is done by:

  $diff->ignore_constraint_names(1)

and similarlly for ignore_index_names (where $diff is a SQL::Translator::Diff object)

The problem comes with how to let this be configurable, since personally I quite like the index names being stable/correct (as they are now for me) - my production DB is currently tiny so renames aren't an issue, but I know for a fact that Luke's DB is huwge....

****

Oh. actually looking at the code, $sqltargs to create_ddl_dir is already the options has that SQL::T::Diff reads.

Luke: try passing { ignore_constraint_names => 1} to the last arg for create_ddl_dir (to check it works etc., then we can sort out a way forward)

-ash
_______________________________________________
List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
Searchable Archive: http://www.grokbase.com/group/[EMAIL PROTECTED]

Reply via email to