aboutsummaryrefslogtreecommitdiffstats
path: root/db/migrate
diff options
context:
space:
mode:
authorXinhui2016-05-11 15:06:11 +0200
committerXinhui2016-05-11 15:06:11 +0200
commit781142afdb90bb0ca62783435f582725794f4f57 (patch)
tree83d37e168f4cd02422088c0c15d39160c1e6a8bd /db/migrate
parentf0b822710320a3dde22782334b436b87f5d47054 (diff)
downloadchouette-core-781142afdb90bb0ca62783435f582725794f4f57.tar.bz2
Disable Line foreign key
Refs #825
Diffstat (limited to 'db/migrate')
-rw-r--r--db/migrate/20160511094753_disable_line_foreign_keys.rb21
1 files changed, 21 insertions, 0 deletions
diff --git a/db/migrate/20160511094753_disable_line_foreign_keys.rb b/db/migrate/20160511094753_disable_line_foreign_keys.rb
new file mode 100644
index 000000000..ffc665344
--- /dev/null
+++ b/db/migrate/20160511094753_disable_line_foreign_keys.rb
@@ -0,0 +1,21 @@
+class DisableLineForeignKeys < ActiveRecord::Migration
+ def change
+ disable_foreign_key :lines, :line_company_fkey
+ disable_foreign_key :lines, :line_ptnetwork_fkey
+ disable_foreign_key :routing_constraints_lines, :routingconstraint_line_fkey
+ disable_foreign_key :routes, :route_line_fkey
+ disable_foreign_key :group_of_lines_lines, :groupofline_line_fkey
+ end
+
+ def disable_foreign_key(table, name)
+ if foreign_key?(table, name)
+ remove_foreign_key table, name: name
+ end
+ end
+
+ def foreign_key?(table, name)
+ @connection.foreign_keys(table).any? do |foreign_key|
+ foreign_key.options[:name] == name.to_s
+ end
+ end
+end