From 4e07305b27101b164d983d51fad60cf715f31501 Mon Sep 17 00:00:00 2001 From: Felipe Artur Date: Fri, 7 Jul 2017 14:03:13 -0300 Subject: [PATCH 1/2] fix migrations in the future --- ...ones.rb => 20170707183807_add_group_id_to_milestones.rb} | 0 ....rb => 20170707184243_add_group_milestone_id_indexes.rb} | 0 ...0707184244_remove_wrong_versions_from_schema_versions.rb | 6 ++++++ db/schema.rb | 2 +- 4 files changed, 7 insertions(+), 1 deletion(-) rename db/migrate/{20170723183807_add_group_id_to_milestones.rb => 20170707183807_add_group_id_to_milestones.rb} (100%) rename db/migrate/{20170724184243_add_group_milestone_id_indexes.rb => 20170707184243_add_group_milestone_id_indexes.rb} (100%) create mode 100644 db/migrate/20170707184244_remove_wrong_versions_from_schema_versions.rb diff --git a/db/migrate/20170723183807_add_group_id_to_milestones.rb b/db/migrate/20170707183807_add_group_id_to_milestones.rb similarity index 100% rename from db/migrate/20170723183807_add_group_id_to_milestones.rb rename to db/migrate/20170707183807_add_group_id_to_milestones.rb diff --git a/db/migrate/20170724184243_add_group_milestone_id_indexes.rb b/db/migrate/20170707184243_add_group_milestone_id_indexes.rb similarity index 100% rename from db/migrate/20170724184243_add_group_milestone_id_indexes.rb rename to db/migrate/20170707184243_add_group_milestone_id_indexes.rb diff --git a/db/migrate/20170707184244_remove_wrong_versions_from_schema_versions.rb b/db/migrate/20170707184244_remove_wrong_versions_from_schema_versions.rb new file mode 100644 index 00000000000..f82a5dffa9e --- /dev/null +++ b/db/migrate/20170707184244_remove_wrong_versions_from_schema_versions.rb @@ -0,0 +1,6 @@ +class RemoveWrongVersionsFromSchemaVersions < ActiveRecord::Migration + def change + execute "UPDATE schema_migrations SET version = '20170707183807' WHERE version = '20170723183807'" + execute "UPDATE schema_migrations SET version = '20170707184243' WHERE version = '20170724184243'" + end +end diff --git a/db/schema.rb b/db/schema.rb index 386f3041135..c116d318ea3 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: 20170724184243) do +ActiveRecord::Schema.define(version: 20170707184244) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" From b24ef9ce2addea3e89cce0c20534091158a0fd9b Mon Sep 17 00:00:00 2001 From: Felipe Artur Date: Fri, 7 Jul 2017 15:01:30 -0300 Subject: [PATCH 2/2] Make wrong migrations idempotent --- .../20170707183807_add_group_id_to_milestones.rb | 2 ++ .../20170707184243_add_group_milestone_id_indexes.rb | 2 ++ ...84244_remove_wrong_versions_from_schema_versions.rb | 10 +++++++--- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/db/migrate/20170707183807_add_group_id_to_milestones.rb b/db/migrate/20170707183807_add_group_id_to_milestones.rb index e46fc4f80f0..675ffd4a1c9 100644 --- a/db/migrate/20170707183807_add_group_id_to_milestones.rb +++ b/db/migrate/20170707183807_add_group_id_to_milestones.rb @@ -2,6 +2,8 @@ class AddGroupIdToMilestones < ActiveRecord::Migration DOWNTIME = false def up + return if column_exists? :milestones, :group_id + change_column_null :milestones, :project_id, true add_column :milestones, :group_id, :integer diff --git a/db/migrate/20170707184243_add_group_milestone_id_indexes.rb b/db/migrate/20170707184243_add_group_milestone_id_indexes.rb index d48b1884179..aa48fe90cad 100644 --- a/db/migrate/20170707184243_add_group_milestone_id_indexes.rb +++ b/db/migrate/20170707184243_add_group_milestone_id_indexes.rb @@ -6,6 +6,8 @@ class AddGroupMilestoneIdIndexes < ActiveRecord::Migration DOWNTIME = false def up + return if index_exists?(:milestones, :group_id) + add_concurrent_foreign_key :milestones, :namespaces, column: :group_id, on_delete: :cascade add_concurrent_index :milestones, :group_id diff --git a/db/migrate/20170707184244_remove_wrong_versions_from_schema_versions.rb b/db/migrate/20170707184244_remove_wrong_versions_from_schema_versions.rb index f82a5dffa9e..38536a8b06a 100644 --- a/db/migrate/20170707184244_remove_wrong_versions_from_schema_versions.rb +++ b/db/migrate/20170707184244_remove_wrong_versions_from_schema_versions.rb @@ -1,6 +1,10 @@ class RemoveWrongVersionsFromSchemaVersions < ActiveRecord::Migration - def change - execute "UPDATE schema_migrations SET version = '20170707183807' WHERE version = '20170723183807'" - execute "UPDATE schema_migrations SET version = '20170707184243' WHERE version = '20170724184243'" + DOWNTIME = false + + def up + execute("DELETE FROM schema_migrations WHERE version IN ('20170723183807', '20170724184243')") + end + + def down end end