diff options
author | mkanat%bugzilla.org <> | 2007-12-13 10:14:32 +0100 |
---|---|---|
committer | mkanat%bugzilla.org <> | 2007-12-13 10:14:32 +0100 |
commit | a4b66874db35b0ad64257b202dc48d43924eb14e (patch) | |
tree | b8bc2ff96e223c326810d5d9c032286d61e2b1da /Bugzilla/DB.pm | |
parent | 5c779ad57796cf6c1f88efe2f3b88b1b96144004 (diff) | |
download | bugzilla-a4b66874db35b0ad64257b202dc48d43924eb14e.tar.gz bugzilla-a4b66874db35b0ad64257b202dc48d43924eb14e.tar.xz |
Bug 408032: [Oracle] Make bzdbcopy.pl work with Oracle
Patch By Max Kanat-Alexander <mkanat@bugzilla.org> (module owner) a=mkanat
Diffstat (limited to 'Bugzilla/DB.pm')
-rw-r--r-- | Bugzilla/DB.pm | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/Bugzilla/DB.pm b/Bugzilla/DB.pm index 49692eec0..f97273e1a 100644 --- a/Bugzilla/DB.pm +++ b/Bugzilla/DB.pm @@ -504,6 +504,19 @@ sub bz_setup_foreign_keys { } } +# This is used by contrib/bzdbcopy.pl, mostly. +sub bz_drop_foreign_keys { + my ($self) = @_; + + my @tables = $self->_bz_real_schema->get_table_list(); + foreach my $table (@tables) { + my @columns = $self->_bz_real_schema->get_table_columns($table); + foreach my $column (@columns) { + $self->bz_drop_fk($table, $column); + } + } +} + ##################################################################### # Schema Modification Methods ##################################################################### @@ -749,6 +762,24 @@ sub bz_drop_column { } } +sub bz_drop_fk { + my ($self, $table, $column) = @_; + + my $col_def = $self->bz_column_info($table, $column); + if ($col_def && exists $col_def->{REFERENCES}) { + my $def = $col_def->{REFERENCES}; + print get_text('install_fk_drop', + { table => $table, column => $column, fk => $def }) + . "\n" if Bugzilla->usage_mode == USAGE_MODE_CMDLINE; + my @sql = $self->_bz_real_schema->get_drop_fk_sql($table,$column,$def); + $self->do($_) foreach @sql; + delete $col_def->{REFERENCES}; + $self->_bz_real_schema->set_column($table, $column, $col_def); + $self->_bz_store_real_schema; + } + +} + sub bz_drop_index { my ($self, $table, $name) = @_; |