From 72d00309c82e69bbe2599b79b8295fac289ccc43 Mon Sep 17 00:00:00 2001 From: Kevin Buchanan Date: Thu, 3 Mar 2016 16:22:37 -0600 Subject: [PATCH] Remove foreign key constraints referencing nodes table --- Rakefile | 1 + db/migrations/014_remove_foreign_keys.rb | 15 +++++++++++++++ db/schema.rb | 21 +++++++++++---------- 3 files changed, 27 insertions(+), 10 deletions(-) create mode 100644 db/migrations/014_remove_foreign_keys.rb diff --git a/Rakefile b/Rakefile index b479fc5..64ba49c 100644 --- a/Rakefile +++ b/Rakefile @@ -64,6 +64,7 @@ namespace :db do desc "rollback one migration" task :rollback => :env do DB.with_connection do |c| + Foreigner.load ActiveRecord::Migrator.rollback('db/migrations') end end diff --git a/db/migrations/014_remove_foreign_keys.rb b/db/migrations/014_remove_foreign_keys.rb new file mode 100644 index 0000000..ed18af3 --- /dev/null +++ b/db/migrations/014_remove_foreign_keys.rb @@ -0,0 +1,15 @@ +class RemoveForeignKeys < ActiveRecord::Migration + def up + remove_foreign_key(:client_node_details, :nodes) + remove_foreign_key(:node_details, :nodes) + remove_foreign_key(:status_changes, :nodes) + remove_foreign_key(:nodes, name: 'nodes_parent_id_fk') + end + + def down + add_foreign_key(:client_node_details, :nodes) + add_foreign_key(:node_details, :nodes) + add_foreign_key(:status_changes, :nodes) + add_foreign_key(:nodes, :nodes, column: 'parent_id') + end +end diff --git a/db/schema.rb b/db/schema.rb index ffca016..27e23ef 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 11) do +ActiveRecord::Schema.define(version: 14) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -38,17 +38,17 @@ add_index "node_details", ["node_id"], name: "index_node_details_on_node_id", unique: true, using: :btree create_table "nodes", id: :uuid, default: "uuid_generate_v4()", force: true do |t| - t.string "mode", null: false - t.string "current_server_status", null: false - t.string "current_client_status", null: false - t.string "name", null: false + t.string "mode", null: false + t.string "current_server_status", null: false + t.string "current_client_status", null: false + t.string "name", null: false t.datetime "fires_at" t.uuid "parent_id" - t.uuid "workflow_id", null: false - t.uuid "user_id", null: false - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.integer "seq", null: false + t.uuid "workflow_id", null: false + t.uuid "user_id", null: false + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.integer "seq", limit: 8, default: "nextval('nodes_seq_seq'::regclass)", null: false t.uuid "parent_link_id" end @@ -56,6 +56,7 @@ add_index "nodes", ["parent_id"], name: "index_nodes_on_parent_id", using: :btree add_index "nodes", ["parent_link_id"], name: "index_nodes_on_parent_link_id", using: :btree add_index "nodes", ["seq"], name: "index_nodes_on_seq", unique: true, using: :btree + add_index "nodes", ["workflow_id", "seq", "parent_id"], name: "index_nodes_on_workflow_id_and_seq_and_parent_id", using: :btree add_index "nodes", ["workflow_id"], name: "index_nodes_on_workflow_id", using: :btree create_table "status_changes", force: true do |t|