From 2fdf15dd9784dd9cef76ab62ea36a3d165fa9bec Mon Sep 17 00:00:00 2001 From: Tiago Botelho Date: Wed, 23 May 2018 14:45:53 +0100 Subject: Edits create_project_mirror_data to add the new columns when table already exists --- .../20180502122856_create_project_mirror_data.rb | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/db/migrate/20180502122856_create_project_mirror_data.rb b/db/migrate/20180502122856_create_project_mirror_data.rb index d449f944844..d050ff1ca61 100644 --- a/db/migrate/20180502122856_create_project_mirror_data.rb +++ b/db/migrate/20180502122856_create_project_mirror_data.rb @@ -4,13 +4,17 @@ class CreateProjectMirrorData < ActiveRecord::Migration DOWNTIME = false def up - return if table_exists?(:project_mirror_data) - - create_table :project_mirror_data do |t| - t.references :project, index: true, foreign_key: { on_delete: :cascade } - t.string :status - t.string :jid - t.text :last_error + if table_exists?(:project_mirror_data) + add_column :project_mirror_data, :status, :string unless column_exists?(:project_mirror_data, :status) + add_column :project_mirror_data, :jid, :string unless column_exists?(:project_mirror_data, :jid) + add_column :project_mirror_data, :last_error, :text unless column_exists?(:project_mirror_data, :last_error) + else + create_table :project_mirror_data do |t| + t.references :project, index: true, foreign_key: { on_delete: :cascade } + t.string :status + t.string :jid + t.text :last_error + end end end -- cgit v1.2.1 From 9b058b8d42a089a6061e9f670aa8e126f44209e1 Mon Sep 17 00:00:00 2001 From: Tiago Botelho Date: Wed, 23 May 2018 14:46:38 +0100 Subject: Adds migration to ensure the new project_mirror_data columns are indeed added to the table --- ...03175053_add_missing_columns_to_project_mirror_data.rb | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 db/migrate/20180503175053_add_missing_columns_to_project_mirror_data.rb diff --git a/db/migrate/20180503175053_add_missing_columns_to_project_mirror_data.rb b/db/migrate/20180503175053_add_missing_columns_to_project_mirror_data.rb new file mode 100644 index 00000000000..030bb7662c3 --- /dev/null +++ b/db/migrate/20180503175053_add_missing_columns_to_project_mirror_data.rb @@ -0,0 +1,15 @@ +class AddMissingColumnsToProjectMirrorData < ActiveRecord::Migration + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + def up + add_column :project_mirror_data, :status, :string unless column_exists?(:project_mirror_data, :status) + add_column :project_mirror_data, :jid, :string unless column_exists?(:project_mirror_data, :jid) + add_column :project_mirror_data, :last_error, :text unless column_exists?(:project_mirror_data, :last_error) + end + + def down + # db/migrate/20180502122856_create_project_mirror_data.rb will remove the table + end +end -- cgit v1.2.1 From f9d83840f2f36bee527d9343c7655d90475b3fed Mon Sep 17 00:00:00 2001 From: Tiago Botelho Date: Wed, 23 May 2018 14:53:13 +0100 Subject: Adds changelog --- .../unreleased/46630-add-missing-columns-to-project-mirror-data.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 changelogs/unreleased/46630-add-missing-columns-to-project-mirror-data.yml diff --git a/changelogs/unreleased/46630-add-missing-columns-to-project-mirror-data.yml b/changelogs/unreleased/46630-add-missing-columns-to-project-mirror-data.yml new file mode 100644 index 00000000000..cc153b85440 --- /dev/null +++ b/changelogs/unreleased/46630-add-missing-columns-to-project-mirror-data.yml @@ -0,0 +1,5 @@ +--- +title: Fix project mirror database inconsistencies when upgrading from EE to CE +merge_request: 19109 +author: +type: fixed -- cgit v1.2.1 From 29257b0e1c3f30a8aa4f259ff27111d0ab3b833e Mon Sep 17 00:00:00 2001 From: Tiago Botelho Date: Wed, 23 May 2018 15:23:49 +0100 Subject: Renames AddMissingColumnsToProjectMirrorData to EnsureMissingColumnsToProjectMirrorData --- ...03175053_add_missing_columns_to_project_mirror_data.rb | 15 --------------- ...75053_ensure_missing_columns_to_project_mirror_data.rb | 15 +++++++++++++++ 2 files changed, 15 insertions(+), 15 deletions(-) delete mode 100644 db/migrate/20180503175053_add_missing_columns_to_project_mirror_data.rb create mode 100644 db/migrate/20180503175053_ensure_missing_columns_to_project_mirror_data.rb diff --git a/db/migrate/20180503175053_add_missing_columns_to_project_mirror_data.rb b/db/migrate/20180503175053_add_missing_columns_to_project_mirror_data.rb deleted file mode 100644 index 030bb7662c3..00000000000 --- a/db/migrate/20180503175053_add_missing_columns_to_project_mirror_data.rb +++ /dev/null @@ -1,15 +0,0 @@ -class AddMissingColumnsToProjectMirrorData < ActiveRecord::Migration - include Gitlab::Database::MigrationHelpers - - DOWNTIME = false - - def up - add_column :project_mirror_data, :status, :string unless column_exists?(:project_mirror_data, :status) - add_column :project_mirror_data, :jid, :string unless column_exists?(:project_mirror_data, :jid) - add_column :project_mirror_data, :last_error, :text unless column_exists?(:project_mirror_data, :last_error) - end - - def down - # db/migrate/20180502122856_create_project_mirror_data.rb will remove the table - end -end diff --git a/db/migrate/20180503175053_ensure_missing_columns_to_project_mirror_data.rb b/db/migrate/20180503175053_ensure_missing_columns_to_project_mirror_data.rb new file mode 100644 index 00000000000..970a53d68d0 --- /dev/null +++ b/db/migrate/20180503175053_ensure_missing_columns_to_project_mirror_data.rb @@ -0,0 +1,15 @@ +class EnsureMissingColumnsToProjectMirrorData < ActiveRecord::Migration + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + def up + add_column :project_mirror_data, :status, :string unless column_exists?(:project_mirror_data, :status) + add_column :project_mirror_data, :jid, :string unless column_exists?(:project_mirror_data, :jid) + add_column :project_mirror_data, :last_error, :text unless column_exists?(:project_mirror_data, :last_error) + end + + def down + # db/migrate/20180502122856_create_project_mirror_data.rb will remove the table + end +end -- cgit v1.2.1 From b92b1e8d9ecfa44cb4bddf63c8bda2348284abe6 Mon Sep 17 00:00:00 2001 From: Tiago Botelho Date: Wed, 23 May 2018 15:26:29 +0100 Subject: Rollback changes made to CreateProjectMirrorData --- .../20180502122856_create_project_mirror_data.rb | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/db/migrate/20180502122856_create_project_mirror_data.rb b/db/migrate/20180502122856_create_project_mirror_data.rb index d050ff1ca61..d449f944844 100644 --- a/db/migrate/20180502122856_create_project_mirror_data.rb +++ b/db/migrate/20180502122856_create_project_mirror_data.rb @@ -4,17 +4,13 @@ class CreateProjectMirrorData < ActiveRecord::Migration DOWNTIME = false def up - if table_exists?(:project_mirror_data) - add_column :project_mirror_data, :status, :string unless column_exists?(:project_mirror_data, :status) - add_column :project_mirror_data, :jid, :string unless column_exists?(:project_mirror_data, :jid) - add_column :project_mirror_data, :last_error, :text unless column_exists?(:project_mirror_data, :last_error) - else - create_table :project_mirror_data do |t| - t.references :project, index: true, foreign_key: { on_delete: :cascade } - t.string :status - t.string :jid - t.text :last_error - end + return if table_exists?(:project_mirror_data) + + create_table :project_mirror_data do |t| + t.references :project, index: true, foreign_key: { on_delete: :cascade } + t.string :status + t.string :jid + t.text :last_error end end -- cgit v1.2.1