X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FSQL%2FTranslator%2FObject%2FTable.pm;fp=lib%2FSQL%2FTranslator%2FObject%2FTable.pm;h=0ee4121ad07544eb900049c8f95c06d1180a2dad;hb=4004eb306c3ab1e5d41c0c53dcf26acf05484fb4;hp=8840f7cef8b9914d850447b0b5069f46b65baaaf;hpb=1f5b9ea48851ec6a425561ffd3a869456b55cfdb;p=dbsrgits%2FSQL-Translator-2.0-ish.git diff --git a/lib/SQL/Translator/Object/Table.pm b/lib/SQL/Translator/Object/Table.pm index 8840f7c..0ee4121 100644 --- a/lib/SQL/Translator/Object/Table.pm +++ b/lib/SQL/Translator/Object/Table.pm @@ -111,6 +111,14 @@ class SQL::Translator::Object::Table extends SQL::Translator::Object is dirty { } around add_constraint(Constraint $constraint does coerce) { + if ($constraint->type eq 'FOREIGN KEY') { + my @columns = $constraint->get_columns; + die "There are no columns associated with this foreign key constraint." unless scalar @columns; + for my $column (@columns) { + die "Can't use column " . $column->name . ". It doesn't exist!" unless $self->exists_column($column); + } + die "Reference table " . $constraint->reference_table . " does not exist!" unless $self->schema->exists_table($constraint->reference_table); + } my $name = $constraint->name; if ($name eq '') { my $idx = 0;