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]