Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'db/migrate/20180403035759_create_project_ci_cd_settings.rb')
-rw-r--r--db/migrate/20180403035759_create_project_ci_cd_settings.rb62
1 files changed, 0 insertions, 62 deletions
diff --git a/db/migrate/20180403035759_create_project_ci_cd_settings.rb b/db/migrate/20180403035759_create_project_ci_cd_settings.rb
deleted file mode 100644
index c630dd3c942..00000000000
--- a/db/migrate/20180403035759_create_project_ci_cd_settings.rb
+++ /dev/null
@@ -1,62 +0,0 @@
-class CreateProjectCiCdSettings < ActiveRecord::Migration[4.2]
- include Gitlab::Database::MigrationHelpers
-
- DOWNTIME = false
-
- disable_ddl_transaction!
-
- def up
- unless table_exists?(:project_ci_cd_settings)
- create_table(:project_ci_cd_settings) do |t|
- t.integer(:project_id, null: false)
- t.boolean(:group_runners_enabled, default: true, null: false)
- end
- end
-
- disable_statement_timeout do
- # This particular INSERT will take between 10 and 20 seconds.
- execute 'INSERT INTO project_ci_cd_settings (project_id) SELECT id FROM projects'
-
- # We add the index and foreign key separately so the above INSERT statement
- # takes as little time as possible.
- add_concurrent_index(:project_ci_cd_settings, :project_id, unique: true)
-
- add_foreign_key_with_retry
- end
- end
-
- def down
- drop_table :project_ci_cd_settings
- end
-
- def add_foreign_key_with_retry
- # Between the initial INSERT and the addition of the foreign key some
- # projects may have been removed, leaving orphaned rows in our new settings
- # table.
- loop do
- remove_orphaned_settings
-
- begin
- add_project_id_foreign_key
- break
- rescue ActiveRecord::InvalidForeignKey
- say 'project_ci_cd_settings contains some orphaned rows, retrying...'
- end
- end
- end
-
- def add_project_id_foreign_key
- add_concurrent_foreign_key(:project_ci_cd_settings, :projects, column: :project_id)
- end
-
- def remove_orphaned_settings
- execute <<~SQL
- DELETE FROM project_ci_cd_settings
- WHERE NOT EXISTS (
- SELECT 1
- FROM projects
- WHERE projects.id = project_ci_cd_settings.project_id
- )
- SQL
- end
-end