From: Justin Hunter Date: Sat, 5 Sep 2009 17:11:46 +0000 (-0700) Subject: handle constraints with no name X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=f34b818d788d7799962e3483d25567829029ca0f;p=dbsrgits%2FSQL-Translator-2.0-ish.git handle constraints with no name --- diff --git a/lib/SQL/Translator/Object/Table.pm b/lib/SQL/Translator/Object/Table.pm index 8686884..bb7aa13 100644 --- a/lib/SQL/Translator/Object/Table.pm +++ b/lib/SQL/Translator/Object/Table.pm @@ -85,8 +85,16 @@ class SQL::Translator::Object::Table extends SQL::Translator::Object { around add_column(Column $column) { $self->$orig($column->name, $column) } around add_index(Index $index) { $self->$orig($index->name, $index) } - around add_constraint(Constraint $constraint) { $self->$orig($constraint->name, $constraint) } around add_sequence(Sequence $sequence) { $self->$orig($sequence->name, $sequence) } + around add_constraint(Constraint $constraint) { + my $name = $constraint->name; + if ($name eq '') { + my $index = 0; + while ($self->exists_constraint('ANON' . $index)) { $index++ } + $name = 'ANON' . $index; + } + $self->$orig($name, $constraint) + } multi method primary_key(Any $) { grep /^PRIMARY KEY$/, $_->type for $self->get_constraints } multi method primary_key(Str $column) { $self->get_column($column)->is_primary_key(1) }