From e900df0bcc90d24bb939de6e247fed9871562d31 Mon Sep 17 00:00:00 2001 From: Douglas Barbosa Alexandre <dbalexandre@gmail.com> Date: Mon, 27 Sep 2021 15:22:02 -0300 Subject: [PATCH] Convert ee/geo/db/schema.rb to ee/geo/db/structure.sql Please refer to https://gitlab.com/gitlab-org/gitlab/-/issues/341758 for details. Changelog: changed EE: true --- ...Geo Replicate a new Git repository type.md | 2 +- .../Geo Replicate a new blob type.md | 2 +- .rubocop.yml | 1 - danger/database/Dangerfile | 4 +- ee/db/geo/schema.rb | 322 +-------- ee/db/geo/schema_migrations/20170206203234 | 1 + ee/db/geo/schema_migrations/20170223033541 | 1 + ee/db/geo/schema_migrations/20170302005747 | 1 + ee/db/geo/schema_migrations/20170526214010 | 1 + ee/db/geo/schema_migrations/20170605154253 | 1 + ee/db/geo/schema_migrations/20170606155045 | 1 + ee/db/geo/schema_migrations/20170614201943 | 1 + ee/db/geo/schema_migrations/20170627195211 | 1 + ee/db/geo/schema_migrations/20170906174622 | 1 + ee/db/geo/schema_migrations/20170906182752 | 1 + ee/db/geo/schema_migrations/20171005045404 | 1 + ee/db/geo/schema_migrations/20171009162208 | 1 + ee/db/geo/schema_migrations/20171009162209 | 1 + ee/db/geo/schema_migrations/20171101105200 | 1 + ee/db/geo/schema_migrations/20171115143841 | 1 + ee/db/geo/schema_migrations/20180201154345 | 1 + ee/db/geo/schema_migrations/20180314175612 | 1 + ee/db/geo/schema_migrations/20180315222132 | 1 + ee/db/geo/schema_migrations/20180320011914 | 1 + ee/db/geo/schema_migrations/20180320013929 | 1 + ee/db/geo/schema_migrations/20180321144947 | 1 + ee/db/geo/schema_migrations/20180322062741 | 1 + ee/db/geo/schema_migrations/20180323182105 | 1 + ee/db/geo/schema_migrations/20180326171626 | 1 + ee/db/geo/schema_migrations/20180327071612 | 1 + ee/db/geo/schema_migrations/20180331055706 | 1 + ee/db/geo/schema_migrations/20180402170913 | 1 + ee/db/geo/schema_migrations/20180405074130 | 1 + ee/db/geo/schema_migrations/20180412213305 | 1 + ee/db/geo/schema_migrations/20180419174834 | 1 + ee/db/geo/schema_migrations/20180419192603 | 1 + ee/db/geo/schema_migrations/20180427114641 | 1 + ee/db/geo/schema_migrations/20180510223634 | 1 + ee/db/geo/schema_migrations/20180613184349 | 1 + ee/db/geo/schema_migrations/20180727221937 | 1 + ee/db/geo/schema_migrations/20180802215313 | 1 + ee/db/geo/schema_migrations/20180803160048 | 1 + ee/db/geo/schema_migrations/20180806011909 | 1 + ee/db/geo/schema_migrations/20180806020615 | 1 + ee/db/geo/schema_migrations/20181213184140 | 1 + ee/db/geo/schema_migrations/20190314201959 | 1 + ee/db/geo/schema_migrations/20190612211021 | 1 + ee/db/geo/schema_migrations/20190802200655 | 1 + ee/db/geo/schema_migrations/20190923111102 | 1 + ee/db/geo/schema_migrations/20191007122326 | 1 + ee/db/geo/schema_migrations/20191010203257 | 1 + ee/db/geo/schema_migrations/20191010204941 | 1 + ee/db/geo/schema_migrations/20191025194337 | 1 + ee/db/geo/schema_migrations/20200121194300 | 1 + ee/db/geo/schema_migrations/20200407120740 | 1 + ee/db/geo/schema_migrations/20200707011052 | 1 + ee/db/geo/schema_migrations/20200707210300 | 1 + ee/db/geo/schema_migrations/20200710194046 | 1 + ee/db/geo/schema_migrations/20200730133800 | 1 + ee/db/geo/schema_migrations/20200811171011 | 1 + ee/db/geo/schema_migrations/20200827120552 | 1 + ee/db/geo/schema_migrations/20200915152620 | 1 + ee/db/geo/schema_migrations/20200924184638 | 1 + ee/db/geo/schema_migrations/20201208025254 | 1 + ee/db/geo/schema_migrations/20201208031224 | 1 + ee/db/geo/schema_migrations/20210120225014 | 1 + ee/db/geo/schema_migrations/20210125222907 | 1 + ee/db/geo/schema_migrations/20210208175408 | 1 + ee/db/geo/schema_migrations/20210217020154 | 1 + ee/db/geo/schema_migrations/20210217020156 | 1 + ee/db/geo/schema_migrations/20210223111722 | 1 + ee/db/geo/schema_migrations/20210225200858 | 1 + ee/db/geo/schema_migrations/20210313050709 | 1 + ee/db/geo/schema_migrations/20210313051642 | 1 + ee/db/geo/schema_migrations/20210325150435 | 1 + ee/db/geo/schema_migrations/20210407140527 | 1 + ee/db/geo/schema_migrations/20210420180119 | 1 + ee/db/geo/schema_migrations/20210504143244 | 1 + ee/db/geo/schema_migrations/20210505170208 | 1 + ee/db/geo/schema_migrations/20210624160455 | 1 + ee/db/geo/schema_migrations/20210706120644 | 1 + ee/db/geo/schema_migrations/20210818111211 | 1 + ee/db/geo/schema_migrations/20210820152707 | 1 + ee/db/geo/structure.sql | 621 ++++++++++++++++++ ee/lib/gitlab/geo/database_tasks.rb | 26 +- ee/lib/tasks/geo.rake | 15 +- ee/spec/lib/gitlab/geo/database_tasks_spec.rb | 6 +- ee/spec/tasks/geo_rake_spec.rb | 11 +- 88 files changed, 747 insertions(+), 341 deletions(-) create mode 100644 ee/db/geo/schema_migrations/20170206203234 create mode 100644 ee/db/geo/schema_migrations/20170223033541 create mode 100644 ee/db/geo/schema_migrations/20170302005747 create mode 100644 ee/db/geo/schema_migrations/20170526214010 create mode 100644 ee/db/geo/schema_migrations/20170605154253 create mode 100644 ee/db/geo/schema_migrations/20170606155045 create mode 100644 ee/db/geo/schema_migrations/20170614201943 create mode 100644 ee/db/geo/schema_migrations/20170627195211 create mode 100644 ee/db/geo/schema_migrations/20170906174622 create mode 100644 ee/db/geo/schema_migrations/20170906182752 create mode 100644 ee/db/geo/schema_migrations/20171005045404 create mode 100644 ee/db/geo/schema_migrations/20171009162208 create mode 100644 ee/db/geo/schema_migrations/20171009162209 create mode 100644 ee/db/geo/schema_migrations/20171101105200 create mode 100644 ee/db/geo/schema_migrations/20171115143841 create mode 100644 ee/db/geo/schema_migrations/20180201154345 create mode 100644 ee/db/geo/schema_migrations/20180314175612 create mode 100644 ee/db/geo/schema_migrations/20180315222132 create mode 100644 ee/db/geo/schema_migrations/20180320011914 create mode 100644 ee/db/geo/schema_migrations/20180320013929 create mode 100644 ee/db/geo/schema_migrations/20180321144947 create mode 100644 ee/db/geo/schema_migrations/20180322062741 create mode 100644 ee/db/geo/schema_migrations/20180323182105 create mode 100644 ee/db/geo/schema_migrations/20180326171626 create mode 100644 ee/db/geo/schema_migrations/20180327071612 create mode 100644 ee/db/geo/schema_migrations/20180331055706 create mode 100644 ee/db/geo/schema_migrations/20180402170913 create mode 100644 ee/db/geo/schema_migrations/20180405074130 create mode 100644 ee/db/geo/schema_migrations/20180412213305 create mode 100644 ee/db/geo/schema_migrations/20180419174834 create mode 100644 ee/db/geo/schema_migrations/20180419192603 create mode 100644 ee/db/geo/schema_migrations/20180427114641 create mode 100644 ee/db/geo/schema_migrations/20180510223634 create mode 100644 ee/db/geo/schema_migrations/20180613184349 create mode 100644 ee/db/geo/schema_migrations/20180727221937 create mode 100644 ee/db/geo/schema_migrations/20180802215313 create mode 100644 ee/db/geo/schema_migrations/20180803160048 create mode 100644 ee/db/geo/schema_migrations/20180806011909 create mode 100644 ee/db/geo/schema_migrations/20180806020615 create mode 100644 ee/db/geo/schema_migrations/20181213184140 create mode 100644 ee/db/geo/schema_migrations/20190314201959 create mode 100644 ee/db/geo/schema_migrations/20190612211021 create mode 100644 ee/db/geo/schema_migrations/20190802200655 create mode 100644 ee/db/geo/schema_migrations/20190923111102 create mode 100644 ee/db/geo/schema_migrations/20191007122326 create mode 100644 ee/db/geo/schema_migrations/20191010203257 create mode 100644 ee/db/geo/schema_migrations/20191010204941 create mode 100644 ee/db/geo/schema_migrations/20191025194337 create mode 100644 ee/db/geo/schema_migrations/20200121194300 create mode 100644 ee/db/geo/schema_migrations/20200407120740 create mode 100644 ee/db/geo/schema_migrations/20200707011052 create mode 100644 ee/db/geo/schema_migrations/20200707210300 create mode 100644 ee/db/geo/schema_migrations/20200710194046 create mode 100644 ee/db/geo/schema_migrations/20200730133800 create mode 100644 ee/db/geo/schema_migrations/20200811171011 create mode 100644 ee/db/geo/schema_migrations/20200827120552 create mode 100644 ee/db/geo/schema_migrations/20200915152620 create mode 100644 ee/db/geo/schema_migrations/20200924184638 create mode 100644 ee/db/geo/schema_migrations/20201208025254 create mode 100644 ee/db/geo/schema_migrations/20201208031224 create mode 100644 ee/db/geo/schema_migrations/20210120225014 create mode 100644 ee/db/geo/schema_migrations/20210125222907 create mode 100644 ee/db/geo/schema_migrations/20210208175408 create mode 100644 ee/db/geo/schema_migrations/20210217020154 create mode 100644 ee/db/geo/schema_migrations/20210217020156 create mode 100644 ee/db/geo/schema_migrations/20210223111722 create mode 100644 ee/db/geo/schema_migrations/20210225200858 create mode 100644 ee/db/geo/schema_migrations/20210313050709 create mode 100644 ee/db/geo/schema_migrations/20210313051642 create mode 100644 ee/db/geo/schema_migrations/20210325150435 create mode 100644 ee/db/geo/schema_migrations/20210407140527 create mode 100644 ee/db/geo/schema_migrations/20210420180119 create mode 100644 ee/db/geo/schema_migrations/20210504143244 create mode 100644 ee/db/geo/schema_migrations/20210505170208 create mode 100644 ee/db/geo/schema_migrations/20210624160455 create mode 100644 ee/db/geo/schema_migrations/20210706120644 create mode 100644 ee/db/geo/schema_migrations/20210818111211 create mode 100644 ee/db/geo/schema_migrations/20210820152707 create mode 100644 ee/db/geo/structure.sql diff --git a/.gitlab/issue_templates/Geo Replicate a new Git repository type.md b/.gitlab/issue_templates/Geo Replicate a new Git repository type.md index 476ee14a632df..0d822945798c1 100644 --- a/.gitlab/issue_templates/Geo Replicate a new Git repository type.md +++ b/.gitlab/issue_templates/Geo Replicate a new Git repository type.md @@ -109,7 +109,7 @@ Geo secondary sites have a [Geo tracking database](https://gitlab.com/gitlab-org bin/rake geo:db:migrate ``` -- [ ] Be sure to commit the relevant changes in `ee/db/geo/schema.rb` +- [ ] Be sure to commit the relevant changes in `ee/db/geo/structure.sql` ### Add verification state fields on the Geo primary site diff --git a/.gitlab/issue_templates/Geo Replicate a new blob type.md b/.gitlab/issue_templates/Geo Replicate a new blob type.md index aef983f64952f..00a71fa406ed9 100644 --- a/.gitlab/issue_templates/Geo Replicate a new blob type.md +++ b/.gitlab/issue_templates/Geo Replicate a new blob type.md @@ -110,7 +110,7 @@ Geo secondary sites have a [Geo tracking database](https://gitlab.com/gitlab-org bin/rake geo:db:migrate ``` -- [ ] Be sure to commit the relevant changes in `ee/db/geo/schema.rb` +- [ ] Be sure to commit the relevant changes in `ee/db/geo/structure.sql` ### Add verification state fields on the Geo primary site diff --git a/.rubocop.yml b/.rubocop.yml index 141ba874b2134..4bf2392867d4b 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -28,7 +28,6 @@ AllCops: - 'node_modules/**/*' - 'db/fixtures/**/*' - 'db/schema.rb' - - 'ee/db/geo/schema.rb' - 'tmp/**/*' - 'bin/**/*' - 'generator_templates/**/*' diff --git a/danger/database/Dangerfile b/danger/database/Dangerfile index 3018196ddbc10..693c03b9daddd 100644 --- a/danger/database/Dangerfile +++ b/danger/database/Dangerfile @@ -33,7 +33,7 @@ MSG DATABASE_APPROVED_LABEL = 'database::approved' non_geo_db_schema_updated = !git.modified_files.grep(%r{\Adb/structure\.sql}).empty? -geo_db_schema_updated = !git.modified_files.grep(%r{\Aee/db/geo/schema\.rb}).empty? +geo_db_schema_updated = !git.modified_files.grep(%r{\Aee/db/geo/structure\.sql}).empty? non_geo_migration_created = !git.added_files.grep(%r{\A(db/(post_)?migrate)/}).empty? geo_migration_created = !git.added_files.grep(%r{\Aee/db/geo/(post_)?migrate/}).empty? @@ -45,7 +45,7 @@ if non_geo_migration_created && !non_geo_db_schema_updated end if geo_migration_created && !geo_db_schema_updated - warn format(format_str, migrations: 'Geo migrations', schema: helper.html_link("ee/db/geo/schema.rb")) + warn format(format_str, migrations: 'Geo migrations', schema: helper.html_link("ee/db/geo/structure.sql")) end return unless helper.ci? diff --git a/ee/db/geo/schema.rb b/ee/db/geo/schema.rb index 804b801570d3c..d02f9c9c4728a 100644 --- a/ee/db/geo/schema.rb +++ b/ee/db/geo/schema.rb @@ -1,320 +1,6 @@ -# This file is auto-generated from the current state of the database. Instead -# of editing this file, please use the migrations feature of Active Record to -# incrementally modify your database, and then regenerate this schema definition. -# -# This file is the source Rails uses to define your schema when running `rails -# db:schema:load`. When creating a new database, `rails db:schema:load` tends to -# be faster and is potentially less error prone than running all of your -# migrations from scratch. Old migrations may fail to apply correctly if those -# migrations use external dependencies or application code. -# -# It's strongly recommended that you check this file into your version control system. +# frozen_string_literal: true -ActiveRecord::Schema.define(version: 2021_08_20_152707) do +# Disabled in favour of ee/db/geo/structure.sql +# Please refer to https://gitlab.com/gitlab-org/gitlab/-/issues/341758 for details - # These are extensions that must be enabled in order to support this database - enable_extension "plpgsql" - - create_table "container_repository_registry", id: :serial, force: :cascade do |t| - t.integer "container_repository_id", null: false - t.string "state" - t.integer "retry_count", default: 0 - t.string "last_sync_failure" - t.datetime "retry_at" - t.datetime "last_synced_at" - t.datetime "created_at", null: false - t.index ["container_repository_id"], name: "index_container_repository_registry_repository_id_unique", unique: true - t.index ["retry_at"], name: "index_container_repository_registry_on_retry_at" - t.index ["state"], name: "index_container_repository_registry_on_state" - end - - create_table "design_registry", id: :serial, force: :cascade do |t| - t.integer "project_id", null: false - t.string "state", limit: 20 - t.integer "retry_count", default: 0 - t.string "last_sync_failure" - t.boolean "force_to_redownload" - t.boolean "missing_on_primary" - t.datetime "retry_at" - t.datetime "last_synced_at" - t.datetime "created_at", null: false - t.index ["project_id"], name: "index_design_registry_on_project_id", unique: true - t.index ["retry_at"], name: "index_design_registry_on_retry_at" - t.index ["state"], name: "index_design_registry_on_state" - end - - create_table "event_log_states", primary_key: "event_id", force: :cascade do |t| - t.datetime "created_at", null: false - end - - create_table "file_registry", id: :serial, force: :cascade do |t| - t.string "file_type", null: false - t.integer "file_id", null: false - t.bigint "bytes" - t.string "sha256" - t.datetime "created_at", null: false - t.boolean "success", default: false, null: false - t.integer "retry_count", default: 0 - t.datetime "retry_at" - t.boolean "missing_on_primary", default: false, null: false - t.integer "state", limit: 2, default: 0, null: false - t.datetime_with_timezone "last_synced_at" - t.string "last_sync_failure", limit: 255 - t.index ["file_type", "file_id"], name: "index_file_registry_on_file_type_and_file_id", unique: true - t.index ["file_type"], name: "index_file_registry_on_file_type" - t.index ["retry_at"], name: "index_file_registry_on_retry_at" - t.index ["success"], name: "index_file_registry_on_success" - end - - create_table "group_wiki_repository_registry", force: :cascade do |t| - t.datetime_with_timezone "retry_at" - t.datetime_with_timezone "last_synced_at" - t.datetime_with_timezone "created_at", null: false - t.bigint "group_wiki_repository_id", null: false - t.integer "state", limit: 2, default: 0, null: false - t.integer "retry_count", limit: 2, default: 0 - t.text "last_sync_failure" - t.boolean "force_to_redownload" - t.boolean "missing_on_primary" - t.index ["group_wiki_repository_id"], name: "index_g_wiki_repository_registry_on_group_wiki_repository_id", unique: true - t.index ["retry_at"], name: "index_group_wiki_repository_registry_on_retry_at" - t.index ["state"], name: "index_group_wiki_repository_registry_on_state" - end - - create_table "job_artifact_registry", id: :serial, force: :cascade do |t| - t.datetime_with_timezone "created_at" - t.datetime_with_timezone "retry_at" - t.bigint "bytes" - t.integer "artifact_id" - t.integer "retry_count" - t.boolean "success" - t.string "sha256" - t.boolean "missing_on_primary", default: false, null: false - t.index ["artifact_id"], name: "index_job_artifact_registry_on_artifact_id" - t.index ["retry_at"], name: "index_job_artifact_registry_on_retry_at" - t.index ["success"], name: "index_job_artifact_registry_on_success" - end - - create_table "lfs_object_registry", force: :cascade do |t| - t.datetime_with_timezone "created_at" - t.datetime_with_timezone "retry_at" - t.bigint "bytes" - t.integer "lfs_object_id" - t.integer "retry_count", default: 0 - t.boolean "missing_on_primary", default: false, null: false - t.boolean "success", default: false, null: false - t.binary "sha256" - t.integer "state", limit: 2, default: 0, null: false - t.datetime_with_timezone "last_synced_at" - t.text "last_sync_failure" - t.index ["lfs_object_id"], name: "index_lfs_object_registry_on_lfs_object_id", unique: true - t.index ["retry_at"], name: "index_lfs_object_registry_on_retry_at" - t.index ["state"], name: "index_state_in_lfs_objects" - t.index ["success"], name: "index_lfs_object_registry_on_success" - end - - create_table "merge_request_diff_registry", force: :cascade do |t| - t.datetime_with_timezone "created_at", null: false - t.datetime_with_timezone "retry_at" - t.datetime_with_timezone "last_synced_at" - t.bigint "merge_request_diff_id", null: false - t.integer "state", limit: 2, default: 0, null: false - t.integer "retry_count", limit: 2, default: 0 - t.text "last_sync_failure" - t.datetime_with_timezone "verification_started_at" - t.datetime_with_timezone "verified_at" - t.datetime_with_timezone "verification_retry_at" - t.integer "verification_retry_count" - t.integer "verification_state", limit: 2, default: 0, null: false - t.boolean "checksum_mismatch" - t.binary "verification_checksum" - t.binary "verification_checksum_mismatched" - t.string "verification_failure", limit: 255 - t.index ["merge_request_diff_id"], name: "index_merge_request_diff_registry_on_mr_diff_id", unique: true - t.index ["retry_at"], name: "index_merge_request_diff_registry_on_retry_at" - t.index ["state"], name: "index_merge_request_diff_registry_on_state" - t.index ["verification_retry_at"], name: "merge_request_diff_registry_failed_verification", order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 3))" - t.index ["verification_state"], name: "merge_request_diff_registry_needs_verification", where: "((state = 2) AND (verification_state = ANY (ARRAY[0, 3])))" - t.index ["verified_at"], name: "merge_request_diff_registry_pending_verification", order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 0))" - end - - create_table "package_file_registry", id: :serial, force: :cascade do |t| - t.integer "package_file_id", null: false - t.integer "state", default: 0, null: false - t.integer "retry_count", default: 0 - t.string "last_sync_failure", limit: 255 - t.datetime_with_timezone "retry_at" - t.datetime_with_timezone "last_synced_at" - t.datetime_with_timezone "created_at", null: false - t.string "verification_failure", limit: 255 - t.binary "verification_checksum" - t.boolean "checksum_mismatch" - t.binary "verification_checksum_mismatched" - t.integer "verification_retry_count" - t.datetime_with_timezone "verified_at" - t.datetime_with_timezone "verification_retry_at" - t.integer "verification_state", limit: 2, default: 0, null: false - t.datetime_with_timezone "verification_started_at" - t.index ["package_file_id"], name: "index_package_file_registry_on_repository_id" - t.index ["retry_at"], name: "index_package_file_registry_on_retry_at" - t.index ["state"], name: "index_package_file_registry_on_state" - t.index ["verification_retry_at"], name: "package_file_registry_failed_verification", order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 3))" - t.index ["verification_state"], name: "package_file_registry_needs_verification", where: "((state = 2) AND (verification_state = ANY (ARRAY[0, 3])))" - t.index ["verified_at"], name: "package_file_registry_pending_verification", order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 0))" - end - - create_table "pages_deployment_registry", force: :cascade do |t| - t.bigint "pages_deployment_id", null: false - t.datetime_with_timezone "created_at", null: false - t.datetime_with_timezone "last_synced_at" - t.datetime_with_timezone "retry_at" - t.integer "state", limit: 2, default: 0, null: false - t.integer "retry_count", limit: 2, default: 0, null: false - t.string "last_sync_failure", limit: 255 - t.index ["pages_deployment_id"], name: "index_pages_deployment_registry_on_pages_deployment_id", unique: true - t.index ["retry_at"], name: "index_pages_deployment_registry_on_retry_at" - t.index ["state"], name: "index_pages_deployment_registry_on_state" - end - - create_table "pipeline_artifact_registry", force: :cascade do |t| - t.bigint "pipeline_artifact_id", null: false - t.datetime_with_timezone "created_at", null: false - t.datetime_with_timezone "last_synced_at" - t.datetime_with_timezone "retry_at" - t.datetime_with_timezone "verified_at" - t.datetime_with_timezone "verification_started_at" - t.datetime_with_timezone "verification_retry_at" - t.integer "state", limit: 2, default: 0, null: false - t.integer "verification_state", limit: 2, default: 0, null: false - t.integer "retry_count", limit: 2, default: 0 - t.integer "verification_retry_count", limit: 2, default: 0 - t.boolean "checksum_mismatch", default: false, null: false - t.binary "verification_checksum" - t.binary "verification_checksum_mismatched" - t.string "verification_failure", limit: 255 - t.string "last_sync_failure", limit: 255 - t.index ["pipeline_artifact_id"], name: "index_pipeline_artifact_registry_on_pipeline_artifact_id", unique: true - t.index ["retry_at"], name: "index_pipeline_artifact_registry_on_retry_at" - t.index ["state"], name: "index_pipeline_artifact_registry_on_state" - t.index ["verification_retry_at"], name: "pipeline_artifact_registry_failed_verification", order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 3))" - t.index ["verification_state"], name: "pipeline_artifact_registry_needs_verification", where: "((state = 2) AND (verification_state = ANY (ARRAY[0, 3])))" - t.index ["verified_at"], name: "pipeline_artifact_registry_pending_verification", order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 0))" - end - - create_table "project_registry", id: :serial, force: :cascade do |t| - t.integer "project_id", null: false - t.datetime "last_repository_synced_at" - t.datetime "last_repository_successful_sync_at" - t.datetime "created_at", null: false - t.boolean "resync_repository", default: true, null: false - t.boolean "resync_wiki", default: true, null: false - t.datetime "last_wiki_synced_at" - t.datetime "last_wiki_successful_sync_at" - t.integer "repository_retry_count" - t.datetime "repository_retry_at" - t.boolean "force_to_redownload_repository" - t.integer "wiki_retry_count" - t.datetime "wiki_retry_at" - t.boolean "force_to_redownload_wiki" - t.string "last_repository_sync_failure" - t.string "last_wiki_sync_failure" - t.string "last_repository_verification_failure" - t.string "last_wiki_verification_failure" - t.binary "repository_verification_checksum_sha" - t.binary "wiki_verification_checksum_sha" - t.boolean "repository_checksum_mismatch", default: false, null: false - t.boolean "wiki_checksum_mismatch", default: false, null: false - t.boolean "last_repository_check_failed" - t.datetime_with_timezone "last_repository_check_at" - t.datetime_with_timezone "resync_repository_was_scheduled_at" - t.datetime_with_timezone "resync_wiki_was_scheduled_at" - t.boolean "repository_missing_on_primary" - t.boolean "wiki_missing_on_primary" - t.integer "repository_verification_retry_count" - t.integer "wiki_verification_retry_count" - t.datetime_with_timezone "last_repository_verification_ran_at" - t.datetime_with_timezone "last_wiki_verification_ran_at" - t.binary "repository_verification_checksum_mismatched" - t.binary "wiki_verification_checksum_mismatched" - t.boolean "primary_repository_checksummed", default: false, null: false - t.boolean "primary_wiki_checksummed", default: false, null: false - t.index ["last_repository_successful_sync_at"], name: "idx_project_registry_synced_repositories_partial", where: "((resync_repository = false) AND (repository_retry_count IS NULL) AND (repository_verification_checksum_sha IS NOT NULL))" - t.index ["last_repository_successful_sync_at"], name: "index_project_registry_on_last_repository_successful_sync_at" - t.index ["last_repository_synced_at"], name: "index_project_registry_on_last_repository_synced_at" - t.index ["project_id"], name: "idx_project_registry_on_repo_checksums_and_failure_partial", where: "((repository_verification_checksum_sha IS NULL) AND (last_repository_verification_failure IS NULL))" - t.index ["project_id"], name: "idx_project_registry_on_repository_failure_partial", where: "(last_repository_verification_failure IS NOT NULL)" - t.index ["project_id"], name: "idx_project_registry_on_wiki_checksums_and_failure_partial", where: "((wiki_verification_checksum_sha IS NULL) AND (last_wiki_verification_failure IS NULL))" - t.index ["project_id"], name: "idx_project_registry_on_wiki_failure_partial", where: "(last_wiki_verification_failure IS NOT NULL)" - t.index ["project_id"], name: "idx_repository_checksum_mismatch", where: "(repository_checksum_mismatch = true)" - t.index ["project_id"], name: "idx_wiki_checksum_mismatch", where: "(wiki_checksum_mismatch = true)" - t.index ["project_id"], name: "index_project_registry_on_project_id", unique: true - t.index ["repository_retry_at"], name: "index_project_registry_on_repository_retry_at" - t.index ["repository_retry_count"], name: "idx_project_registry_failed_repositories_partial", where: "((repository_retry_count > 0) OR (last_repository_verification_failure IS NOT NULL) OR repository_checksum_mismatch)" - t.index ["repository_retry_count"], name: "idx_project_registry_pending_repositories_partial", where: "((repository_retry_count IS NULL) AND (last_repository_successful_sync_at IS NOT NULL) AND ((resync_repository = true) OR ((repository_verification_checksum_sha IS NULL) AND (last_repository_verification_failure IS NULL))))" - t.index ["repository_verification_checksum_sha"], name: "idx_project_registry_on_repository_checksum_sha_partial", where: "(repository_verification_checksum_sha IS NULL)" - t.index ["resync_repository"], name: "index_project_registry_on_resync_repository" - t.index ["resync_wiki"], name: "index_project_registry_on_resync_wiki" - t.index ["wiki_retry_at"], name: "index_project_registry_on_wiki_retry_at" - t.index ["wiki_verification_checksum_sha"], name: "idx_project_registry_on_wiki_checksum_sha_partial", where: "(wiki_verification_checksum_sha IS NULL)" - end - - create_table "secondary_usage_data", force: :cascade do |t| - t.datetime_with_timezone "created_at", null: false - t.datetime_with_timezone "updated_at", null: false - t.jsonb "payload", default: {}, null: false - end - - create_table "snippet_repository_registry", force: :cascade do |t| - t.datetime_with_timezone "retry_at" - t.datetime_with_timezone "last_synced_at" - t.datetime_with_timezone "created_at", null: false - t.bigint "snippet_repository_id", null: false - t.integer "state", limit: 2, default: 0, null: false - t.integer "retry_count", limit: 2, default: 0 - t.text "last_sync_failure" - t.boolean "force_to_redownload" - t.boolean "missing_on_primary" - t.datetime_with_timezone "verification_started_at" - t.datetime_with_timezone "verified_at" - t.datetime_with_timezone "verification_retry_at" - t.integer "verification_retry_count" - t.integer "verification_state", limit: 2, default: 0, null: false - t.boolean "checksum_mismatch" - t.binary "verification_checksum" - t.binary "verification_checksum_mismatched" - t.string "verification_failure", limit: 255 - t.index ["retry_at"], name: "index_snippet_repository_registry_on_retry_at" - t.index ["snippet_repository_id"], name: "index_snippet_repository_registry_on_snippet_repository_id", unique: true - t.index ["state"], name: "index_snippet_repository_registry_on_state" - t.index ["verification_retry_at"], name: "snippet_repository_registry_failed_verification", order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 3))" - t.index ["verification_state"], name: "snippet_repository_registry_needs_verification", where: "((state = 2) AND (verification_state = ANY (ARRAY[0, 3])))" - t.index ["verified_at"], name: "snippet_repository_registry_pending_verification", order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 0))" - end - - create_table "terraform_state_version_registry", force: :cascade do |t| - t.bigint "terraform_state_version_id", null: false - t.integer "state", limit: 2, default: 0, null: false - t.integer "retry_count", limit: 2, default: 0, null: false - t.datetime_with_timezone "retry_at" - t.datetime_with_timezone "last_synced_at" - t.datetime_with_timezone "created_at", null: false - t.text "last_sync_failure" - t.datetime_with_timezone "verification_started_at" - t.datetime_with_timezone "verified_at" - t.datetime_with_timezone "verification_retry_at" - t.integer "verification_retry_count", default: 0 - t.integer "verification_state", limit: 2, default: 0, null: false - t.boolean "checksum_mismatch", default: false, null: false - t.binary "verification_checksum" - t.binary "verification_checksum_mismatched" - t.string "verification_failure", limit: 255 - t.index ["retry_at"], name: "index_terraform_state_version_registry_on_retry_at" - t.index ["state"], name: "index_terraform_state_version_registry_on_state" - t.index ["terraform_state_version_id"], name: "index_terraform_state_version_registry_on_t_state_version_id", unique: true - t.index ["terraform_state_version_id"], name: "index_tf_state_versions_registry_tf_state_versions_id_unique", unique: true - t.index ["verification_retry_at"], name: "terraform_state_version_registry_failed_verification", order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 3))" - t.index ["verification_state"], name: "terraform_state_version_registry_needs_verification", where: "((state = 2) AND (verification_state = ANY (ARRAY[0, 3])))" - t.index ["verified_at"], name: "terraform_state_version_registry_pending_verification", order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 0))" - end - -end +raise 'ee/db/geo/schema.rb should not be used anymore, use ee/db/geo/structure.sql instead' diff --git a/ee/db/geo/schema_migrations/20170206203234 b/ee/db/geo/schema_migrations/20170206203234 new file mode 100644 index 0000000000000..1e2411572c53a --- /dev/null +++ b/ee/db/geo/schema_migrations/20170206203234 @@ -0,0 +1 @@ +fc56ad577659aeb35893c644f404cbe226ef5c4b64d46bd7a6979917170e8379 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20170223033541 b/ee/db/geo/schema_migrations/20170223033541 new file mode 100644 index 0000000000000..83777280c2936 --- /dev/null +++ b/ee/db/geo/schema_migrations/20170223033541 @@ -0,0 +1 @@ +03f26e06b4a8ba1d7f4793ed59f2790bc782de059a377777adeaa05645d940bc \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20170302005747 b/ee/db/geo/schema_migrations/20170302005747 new file mode 100644 index 0000000000000..4dc4d747848b2 --- /dev/null +++ b/ee/db/geo/schema_migrations/20170302005747 @@ -0,0 +1 @@ +1ee3e2ecb36df2c136430b7a302121cb8b916b54966a1d9c53fb959058b1101c \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20170526214010 b/ee/db/geo/schema_migrations/20170526214010 new file mode 100644 index 0000000000000..6e016f0c32a73 --- /dev/null +++ b/ee/db/geo/schema_migrations/20170526214010 @@ -0,0 +1 @@ +ffdbcf4ba41532961d8245078c5c80997fc8a7494181e9aae22d8d8eb0d84fae \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20170605154253 b/ee/db/geo/schema_migrations/20170605154253 new file mode 100644 index 0000000000000..f821043d4c1b1 --- /dev/null +++ b/ee/db/geo/schema_migrations/20170605154253 @@ -0,0 +1 @@ +6ce74aada3515fe681d55c19f3b483d44dae6878bfdc8713377a0eece3591701 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20170606155045 b/ee/db/geo/schema_migrations/20170606155045 new file mode 100644 index 0000000000000..d4ea24ba7c1d3 --- /dev/null +++ b/ee/db/geo/schema_migrations/20170606155045 @@ -0,0 +1 @@ +7585f2682dc0b35f3bc5e105bd338ce3602cec7e6301a1a59c3b8342e6dd10bd \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20170614201943 b/ee/db/geo/schema_migrations/20170614201943 new file mode 100644 index 0000000000000..9d7af0ae48292 --- /dev/null +++ b/ee/db/geo/schema_migrations/20170614201943 @@ -0,0 +1 @@ +3d715f80eeda6d29cb4bfb725dca4303160d6be515371015726d86d4cfc92b58 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20170627195211 b/ee/db/geo/schema_migrations/20170627195211 new file mode 100644 index 0000000000000..380d32b17f766 --- /dev/null +++ b/ee/db/geo/schema_migrations/20170627195211 @@ -0,0 +1 @@ +ddcfa3398a102a01eda15bb3fa0b6a796011186084b291efd3a0766d327cd22e \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20170906174622 b/ee/db/geo/schema_migrations/20170906174622 new file mode 100644 index 0000000000000..673eecea41a20 --- /dev/null +++ b/ee/db/geo/schema_migrations/20170906174622 @@ -0,0 +1 @@ +158f354fa311961e328951fc365c8d0a87e6c55fbc8bd477b623006abaf18dfe \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20170906182752 b/ee/db/geo/schema_migrations/20170906182752 new file mode 100644 index 0000000000000..9ef122a2fbfb5 --- /dev/null +++ b/ee/db/geo/schema_migrations/20170906182752 @@ -0,0 +1 @@ +44f717e6b7bd87909ea978cdd74991babd0dd3a8e44dbfa4a6b7ec0874dfeeff \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20171005045404 b/ee/db/geo/schema_migrations/20171005045404 new file mode 100644 index 0000000000000..faa1d8bda1c93 --- /dev/null +++ b/ee/db/geo/schema_migrations/20171005045404 @@ -0,0 +1 @@ +89faad46515d44af495b75b7c6ebcdc2c282fbb965cf5f6b34c4df534378b4c5 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20171009162208 b/ee/db/geo/schema_migrations/20171009162208 new file mode 100644 index 0000000000000..39934cd5c8259 --- /dev/null +++ b/ee/db/geo/schema_migrations/20171009162208 @@ -0,0 +1 @@ +cb9da5bc60b2d4699c9117e3e384575e393d0c98b6f669606d98781d22dbc3ac \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20171009162209 b/ee/db/geo/schema_migrations/20171009162209 new file mode 100644 index 0000000000000..9bae0d90fbc52 --- /dev/null +++ b/ee/db/geo/schema_migrations/20171009162209 @@ -0,0 +1 @@ +a6cc590283c5160a325ddd66a8139ac9da973670a5e1ec6c13772535da973237 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20171101105200 b/ee/db/geo/schema_migrations/20171101105200 new file mode 100644 index 0000000000000..e08a0d9522ccb --- /dev/null +++ b/ee/db/geo/schema_migrations/20171101105200 @@ -0,0 +1 @@ +b44a91c540b476b9c63ba247ef9f0e3ee2b696737cc3a59f1b60436dd0d8107f \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20171115143841 b/ee/db/geo/schema_migrations/20171115143841 new file mode 100644 index 0000000000000..6c7011916c1f7 --- /dev/null +++ b/ee/db/geo/schema_migrations/20171115143841 @@ -0,0 +1 @@ +2fb6f33c9d2942d0c83f550963447e414616ded09718e59b9e657480aa8cdfd5 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20180201154345 b/ee/db/geo/schema_migrations/20180201154345 new file mode 100644 index 0000000000000..dd547831c61af --- /dev/null +++ b/ee/db/geo/schema_migrations/20180201154345 @@ -0,0 +1 @@ +871f226decc06e96cfb5f8156c7e87accc9475e22cd97d6c41fa27c8eb5855b7 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20180314175612 b/ee/db/geo/schema_migrations/20180314175612 new file mode 100644 index 0000000000000..421add19c6453 --- /dev/null +++ b/ee/db/geo/schema_migrations/20180314175612 @@ -0,0 +1 @@ +427f9c742870563003a6f7728b8523faed8ad061b00fc01d307d4f2df83867c1 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20180315222132 b/ee/db/geo/schema_migrations/20180315222132 new file mode 100644 index 0000000000000..fe9fe66053cd5 --- /dev/null +++ b/ee/db/geo/schema_migrations/20180315222132 @@ -0,0 +1 @@ +86fd97eff85491d242c8d38acadd383be052175d9e0dcfcecb32aeb152183c34 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20180320011914 b/ee/db/geo/schema_migrations/20180320011914 new file mode 100644 index 0000000000000..5d9eda312a334 --- /dev/null +++ b/ee/db/geo/schema_migrations/20180320011914 @@ -0,0 +1 @@ +842585c0203ead10143bba55cb34d2ab360831661db4519f9083306cde9041f0 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20180320013929 b/ee/db/geo/schema_migrations/20180320013929 new file mode 100644 index 0000000000000..850236ff9a15f --- /dev/null +++ b/ee/db/geo/schema_migrations/20180320013929 @@ -0,0 +1 @@ +df6168850c19c25ac7a177cf91bc5c8ee73fca93724f171d427bf9937e9a6a6c \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20180321144947 b/ee/db/geo/schema_migrations/20180321144947 new file mode 100644 index 0000000000000..8880fa1a5f1a4 --- /dev/null +++ b/ee/db/geo/schema_migrations/20180321144947 @@ -0,0 +1 @@ +c818e0fc91534f407567d6ee1f9e5cd858392c7afbd22c35463c617ec57296f0 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20180322062741 b/ee/db/geo/schema_migrations/20180322062741 new file mode 100644 index 0000000000000..840b4b5b4704e --- /dev/null +++ b/ee/db/geo/schema_migrations/20180322062741 @@ -0,0 +1 @@ +dc1fbc3291af7c261d686747d0985fee6fdc65cce98f262eca496af087020a8c \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20180323182105 b/ee/db/geo/schema_migrations/20180323182105 new file mode 100644 index 0000000000000..80b62740d13cb --- /dev/null +++ b/ee/db/geo/schema_migrations/20180323182105 @@ -0,0 +1 @@ +701f46d9972f184c27e2e8bc3631296138b522035ff35624db9688de9ae3d34b \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20180326171626 b/ee/db/geo/schema_migrations/20180326171626 new file mode 100644 index 0000000000000..9a5f0bbf19191 --- /dev/null +++ b/ee/db/geo/schema_migrations/20180326171626 @@ -0,0 +1 @@ +322e4466d309ccfd8f24064c7835d9b271268d290e8204af06587fa2f5313272 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20180327071612 b/ee/db/geo/schema_migrations/20180327071612 new file mode 100644 index 0000000000000..d5cf95898e252 --- /dev/null +++ b/ee/db/geo/schema_migrations/20180327071612 @@ -0,0 +1 @@ +72c5a2f8a94566a34fcc3df16b72a4239a37a9b1098ce31284d42bd5fefa52c0 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20180331055706 b/ee/db/geo/schema_migrations/20180331055706 new file mode 100644 index 0000000000000..c67e387c16d7d --- /dev/null +++ b/ee/db/geo/schema_migrations/20180331055706 @@ -0,0 +1 @@ +43b9134bcd2c244859497764ae902da51e69320827301be4033b358cd2be3cfe \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20180402170913 b/ee/db/geo/schema_migrations/20180402170913 new file mode 100644 index 0000000000000..42f4f50b1c79d --- /dev/null +++ b/ee/db/geo/schema_migrations/20180402170913 @@ -0,0 +1 @@ +646959b39da5bb35f03941af129444c4364218ecc72ba9ffcfb869fa1d83e030 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20180405074130 b/ee/db/geo/schema_migrations/20180405074130 new file mode 100644 index 0000000000000..3d37db899b84a --- /dev/null +++ b/ee/db/geo/schema_migrations/20180405074130 @@ -0,0 +1 @@ +497de32713debe7016d643f0d9a1eafd6d4dd982c6f56374e26fc91647a61c64 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20180412213305 b/ee/db/geo/schema_migrations/20180412213305 new file mode 100644 index 0000000000000..1d43027607430 --- /dev/null +++ b/ee/db/geo/schema_migrations/20180412213305 @@ -0,0 +1 @@ +6616c486d58e39cc4452f4d28a9f47e5c376ee5e6e9450d9659412467569e9b3 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20180419174834 b/ee/db/geo/schema_migrations/20180419174834 new file mode 100644 index 0000000000000..12db40dc4b892 --- /dev/null +++ b/ee/db/geo/schema_migrations/20180419174834 @@ -0,0 +1 @@ +07196b409c0c9e73e4707a8137716f025f09238869e1b319efa045a0a8a97f74 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20180419192603 b/ee/db/geo/schema_migrations/20180419192603 new file mode 100644 index 0000000000000..192c12f7aa90a --- /dev/null +++ b/ee/db/geo/schema_migrations/20180419192603 @@ -0,0 +1 @@ +8c8454796921d35b59261c9d3a9a29d5c3b52dd85a0171a36b81c0316563d984 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20180427114641 b/ee/db/geo/schema_migrations/20180427114641 new file mode 100644 index 0000000000000..20a92118cbdfa --- /dev/null +++ b/ee/db/geo/schema_migrations/20180427114641 @@ -0,0 +1 @@ +f555f44342f489f4633fde2961c98c857ba9d673b4bde78b278d8a112858fe3d \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20180510223634 b/ee/db/geo/schema_migrations/20180510223634 new file mode 100644 index 0000000000000..63a0af3bf4b91 --- /dev/null +++ b/ee/db/geo/schema_migrations/20180510223634 @@ -0,0 +1 @@ +01b19219e46985ac5dc1df2e6afb45fb9d006f082fadf1565eb4ac9206afb01a \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20180613184349 b/ee/db/geo/schema_migrations/20180613184349 new file mode 100644 index 0000000000000..8dee11372fb24 --- /dev/null +++ b/ee/db/geo/schema_migrations/20180613184349 @@ -0,0 +1 @@ +853357855ebdc76d39a991b402764bc8009f47473f6f03e74c6ec26602695442 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20180727221937 b/ee/db/geo/schema_migrations/20180727221937 new file mode 100644 index 0000000000000..a1cf0fdb06535 --- /dev/null +++ b/ee/db/geo/schema_migrations/20180727221937 @@ -0,0 +1 @@ +b035dbc1bafa92ab1595cb416314f23052b09fac4aff7d8e0556cdae752300fa \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20180802215313 b/ee/db/geo/schema_migrations/20180802215313 new file mode 100644 index 0000000000000..aeba0802b8de4 --- /dev/null +++ b/ee/db/geo/schema_migrations/20180802215313 @@ -0,0 +1 @@ +dc5fe525d8ebb0088f4b704b01b4568e2d8cb487156b4bbc6c90c16d53c501fc \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20180803160048 b/ee/db/geo/schema_migrations/20180803160048 new file mode 100644 index 0000000000000..706288ebe5cda --- /dev/null +++ b/ee/db/geo/schema_migrations/20180803160048 @@ -0,0 +1 @@ +a4a38efe967d1bf4a9b29e1545e32b3ea59d3373920b0989f65ccd1e79b79543 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20180806011909 b/ee/db/geo/schema_migrations/20180806011909 new file mode 100644 index 0000000000000..b61f8e38a1c9d --- /dev/null +++ b/ee/db/geo/schema_migrations/20180806011909 @@ -0,0 +1 @@ +79c814920903ea9b92a2540dc9078a2b119ed63cbe02756d16f2c482ca1889ec \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20180806020615 b/ee/db/geo/schema_migrations/20180806020615 new file mode 100644 index 0000000000000..03338c661aa31 --- /dev/null +++ b/ee/db/geo/schema_migrations/20180806020615 @@ -0,0 +1 @@ +309fceeed92c7454495742644158f9cd2c31d75fc489cffdf18992c69f9b10c7 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20181213184140 b/ee/db/geo/schema_migrations/20181213184140 new file mode 100644 index 0000000000000..837e7d758e545 --- /dev/null +++ b/ee/db/geo/schema_migrations/20181213184140 @@ -0,0 +1 @@ +9c00de916aaa87b205fede9ae8c4decc03a1987fd038cd888abc905556da6334 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20190314201959 b/ee/db/geo/schema_migrations/20190314201959 new file mode 100644 index 0000000000000..ffea100c25eb5 --- /dev/null +++ b/ee/db/geo/schema_migrations/20190314201959 @@ -0,0 +1 @@ +67b34fe78c0d2f25fde2d7a981bc2de1053d46dad9d911df16d238ea02749197 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20190612211021 b/ee/db/geo/schema_migrations/20190612211021 new file mode 100644 index 0000000000000..b50016bab796c --- /dev/null +++ b/ee/db/geo/schema_migrations/20190612211021 @@ -0,0 +1 @@ +805651c9c9f4fcc7ee69be2a774334bd3dea59475f9234da01b8ddc2badb7fb3 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20190802200655 b/ee/db/geo/schema_migrations/20190802200655 new file mode 100644 index 0000000000000..bdacf3120e658 --- /dev/null +++ b/ee/db/geo/schema_migrations/20190802200655 @@ -0,0 +1 @@ +5766c582effb731ce3346ccf335eba9350d671b41ab9697c0c81ce901065f33e \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20190923111102 b/ee/db/geo/schema_migrations/20190923111102 new file mode 100644 index 0000000000000..23fd49ea55d0a --- /dev/null +++ b/ee/db/geo/schema_migrations/20190923111102 @@ -0,0 +1 @@ +a6804d3592cfde2b9541a1cfa20fb67762fa82cf9ebc3f703a98668f742995b0 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20191007122326 b/ee/db/geo/schema_migrations/20191007122326 new file mode 100644 index 0000000000000..90c678bbaec33 --- /dev/null +++ b/ee/db/geo/schema_migrations/20191007122326 @@ -0,0 +1 @@ +15e06328a76772499ce08936d7e11e272ca57c3a5e04246a9b2ddab5e651d0c4 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20191010203257 b/ee/db/geo/schema_migrations/20191010203257 new file mode 100644 index 0000000000000..d7766cff2c738 --- /dev/null +++ b/ee/db/geo/schema_migrations/20191010203257 @@ -0,0 +1 @@ +e1a58a3bc183214d280b253d0171cb97fca3c065a67a746214cf5d096acf0834 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20191010204941 b/ee/db/geo/schema_migrations/20191010204941 new file mode 100644 index 0000000000000..5ddca243eb8af --- /dev/null +++ b/ee/db/geo/schema_migrations/20191010204941 @@ -0,0 +1 @@ +d7c8a2d1a8a4f36781a56475f8d96e830a33a7e94cfe4f622f28c6c43b76323d \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20191025194337 b/ee/db/geo/schema_migrations/20191025194337 new file mode 100644 index 0000000000000..944c081585c6a --- /dev/null +++ b/ee/db/geo/schema_migrations/20191025194337 @@ -0,0 +1 @@ +2a6439cf81ef55b063b277112847b436f7daf37f1fc1d3e76261dc49e8ddba9b \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20200121194300 b/ee/db/geo/schema_migrations/20200121194300 new file mode 100644 index 0000000000000..780a251dc86cf --- /dev/null +++ b/ee/db/geo/schema_migrations/20200121194300 @@ -0,0 +1 @@ +4fbed5a9d9fb34137db151b78efdc9cf7ffbeb445728a1dbf536f1f8d621f066 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20200407120740 b/ee/db/geo/schema_migrations/20200407120740 new file mode 100644 index 0000000000000..e79e69914faf9 --- /dev/null +++ b/ee/db/geo/schema_migrations/20200407120740 @@ -0,0 +1 @@ +2447efe0b351ce5f18aca8c9193541bbd83cdc8a6d009306b57c4158d80525b8 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20200707011052 b/ee/db/geo/schema_migrations/20200707011052 new file mode 100644 index 0000000000000..f3de408488369 --- /dev/null +++ b/ee/db/geo/schema_migrations/20200707011052 @@ -0,0 +1 @@ +91b9f4eece930583053a215792537f8288e8d7226d1cb619eff167999d2c63d9 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20200707210300 b/ee/db/geo/schema_migrations/20200707210300 new file mode 100644 index 0000000000000..ef68dbc0d1a8b --- /dev/null +++ b/ee/db/geo/schema_migrations/20200707210300 @@ -0,0 +1 @@ +73adf0b2df8b314fa4911087d54649e2b2d83310516dd1b7557f8195875744d6 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20200710194046 b/ee/db/geo/schema_migrations/20200710194046 new file mode 100644 index 0000000000000..f1eede41fce34 --- /dev/null +++ b/ee/db/geo/schema_migrations/20200710194046 @@ -0,0 +1 @@ +7dc9e31a729e11dfc4888d681f21b4260d4345d63ec2142aa3e78889d4c60c87 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20200730133800 b/ee/db/geo/schema_migrations/20200730133800 new file mode 100644 index 0000000000000..9e060a6632760 --- /dev/null +++ b/ee/db/geo/schema_migrations/20200730133800 @@ -0,0 +1 @@ +b99486cc34650ba7f735f04813cfcb3af24f8cebe8b293d4ef8db7f08b99fb04 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20200811171011 b/ee/db/geo/schema_migrations/20200811171011 new file mode 100644 index 0000000000000..d07aaa25e6120 --- /dev/null +++ b/ee/db/geo/schema_migrations/20200811171011 @@ -0,0 +1 @@ +e0c194fd28eb186918b71e5d90517cab6bc63d6ae0bdce69ea3bf3e89596e124 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20200827120552 b/ee/db/geo/schema_migrations/20200827120552 new file mode 100644 index 0000000000000..e0baafc288327 --- /dev/null +++ b/ee/db/geo/schema_migrations/20200827120552 @@ -0,0 +1 @@ +7b11f57bd5e4e96676c78335096b2e12b83fdfbc7b7df04fa18fb5b64ce963d1 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20200915152620 b/ee/db/geo/schema_migrations/20200915152620 new file mode 100644 index 0000000000000..f4bbd75ed0e8d --- /dev/null +++ b/ee/db/geo/schema_migrations/20200915152620 @@ -0,0 +1 @@ +faf6f0c60a3a0151995bf0d7973820de649aad4e6d708575e9ae79317ad893eb \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20200924184638 b/ee/db/geo/schema_migrations/20200924184638 new file mode 100644 index 0000000000000..153dcf4ade645 --- /dev/null +++ b/ee/db/geo/schema_migrations/20200924184638 @@ -0,0 +1 @@ +7123ecf2a4b6cd114173126eb9375f050a1bc9b17df4a434f03b42ff902fe407 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20201208025254 b/ee/db/geo/schema_migrations/20201208025254 new file mode 100644 index 0000000000000..5e055b2bd77bf --- /dev/null +++ b/ee/db/geo/schema_migrations/20201208025254 @@ -0,0 +1 @@ +f9e1bca1a7a0c6642359689fa3340313d1d3fdadf31c338c971cb9313cf2b983 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20201208031224 b/ee/db/geo/schema_migrations/20201208031224 new file mode 100644 index 0000000000000..c756679ccc354 --- /dev/null +++ b/ee/db/geo/schema_migrations/20201208031224 @@ -0,0 +1 @@ +84bd01454296401f86c1866a33c6b45091333c6b3d638f5384b9c474bd7ab290 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20210120225014 b/ee/db/geo/schema_migrations/20210120225014 new file mode 100644 index 0000000000000..02bbbb15ac5e6 --- /dev/null +++ b/ee/db/geo/schema_migrations/20210120225014 @@ -0,0 +1 @@ +27d0aa487d569f90cf5f408fca0040b4bd679394520f41c602c2179891ffbb3b \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20210125222907 b/ee/db/geo/schema_migrations/20210125222907 new file mode 100644 index 0000000000000..6f0e1cfd7a6dc --- /dev/null +++ b/ee/db/geo/schema_migrations/20210125222907 @@ -0,0 +1 @@ +0f364cf251d7fcda281145d84dda51cd67d33e4dfe87a805b3b188227c0dddbd \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20210208175408 b/ee/db/geo/schema_migrations/20210208175408 new file mode 100644 index 0000000000000..8801b2d231ac4 --- /dev/null +++ b/ee/db/geo/schema_migrations/20210208175408 @@ -0,0 +1 @@ +2b4bb29e09a1cc599c7b6e2b455bd6ea3175f3b7470ff8cbfef8be686dfb2abc \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20210217020154 b/ee/db/geo/schema_migrations/20210217020154 new file mode 100644 index 0000000000000..21768f11bcec2 --- /dev/null +++ b/ee/db/geo/schema_migrations/20210217020154 @@ -0,0 +1 @@ +11f9ae81865a4315d6b46d90c1636252333747c095de567a056ebb344bc0e702 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20210217020156 b/ee/db/geo/schema_migrations/20210217020156 new file mode 100644 index 0000000000000..8e4de8ac2589b --- /dev/null +++ b/ee/db/geo/schema_migrations/20210217020156 @@ -0,0 +1 @@ +392afdcfb817a88a3cd35afa4db87749bc70418913dd90dbca616c06cdb24b1d \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20210223111722 b/ee/db/geo/schema_migrations/20210223111722 new file mode 100644 index 0000000000000..4ad7e8f0b586d --- /dev/null +++ b/ee/db/geo/schema_migrations/20210223111722 @@ -0,0 +1 @@ +d009ec5b2c7ec6b1f54969dc182c47400e0a6a14f77174852ea42bc5c7823a27 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20210225200858 b/ee/db/geo/schema_migrations/20210225200858 new file mode 100644 index 0000000000000..7b8891d7e3833 --- /dev/null +++ b/ee/db/geo/schema_migrations/20210225200858 @@ -0,0 +1 @@ +b63d6fbfdcf0caf5399cb0c7579831d9187a18de88c7e516a84d21625e5fc963 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20210313050709 b/ee/db/geo/schema_migrations/20210313050709 new file mode 100644 index 0000000000000..14b93af908ac1 --- /dev/null +++ b/ee/db/geo/schema_migrations/20210313050709 @@ -0,0 +1 @@ +823dc59c6b24cfd1784d1dd45e26f8e365e2e812001aa94b9a59daa1e1999f16 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20210313051642 b/ee/db/geo/schema_migrations/20210313051642 new file mode 100644 index 0000000000000..ced8a233d7d1a --- /dev/null +++ b/ee/db/geo/schema_migrations/20210313051642 @@ -0,0 +1 @@ +10bbe723769c6bf30f11406eb7f336f55b5b7b0e805c2fdeb24b018895315fd6 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20210325150435 b/ee/db/geo/schema_migrations/20210325150435 new file mode 100644 index 0000000000000..3d4a45a3201b1 --- /dev/null +++ b/ee/db/geo/schema_migrations/20210325150435 @@ -0,0 +1 @@ +88a3355eb13da8ebccffeef580371a9ed6913baa0755ec4fe84a477eb02de432 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20210407140527 b/ee/db/geo/schema_migrations/20210407140527 new file mode 100644 index 0000000000000..82c9d1b8de140 --- /dev/null +++ b/ee/db/geo/schema_migrations/20210407140527 @@ -0,0 +1 @@ +710ade13436e31c2d8170d85e8890475db8f07fd60c2b89a14ef8824be005bc2 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20210420180119 b/ee/db/geo/schema_migrations/20210420180119 new file mode 100644 index 0000000000000..1e34d6b307455 --- /dev/null +++ b/ee/db/geo/schema_migrations/20210420180119 @@ -0,0 +1 @@ +4cb0e40afc41a81af078e1afc53773fcee508bd4c4d6447ec432d8a28f743177 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20210504143244 b/ee/db/geo/schema_migrations/20210504143244 new file mode 100644 index 0000000000000..523e706cdec76 --- /dev/null +++ b/ee/db/geo/schema_migrations/20210504143244 @@ -0,0 +1 @@ +2af1ff7554c41a412ee92bea810127c5f38485a49e93c7da021b2590544e5150 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20210505170208 b/ee/db/geo/schema_migrations/20210505170208 new file mode 100644 index 0000000000000..b019f0a865158 --- /dev/null +++ b/ee/db/geo/schema_migrations/20210505170208 @@ -0,0 +1 @@ +ce8b83b1233035e24a58a79755fc062bc699f1b5337dfc74de0666a968ac484d \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20210624160455 b/ee/db/geo/schema_migrations/20210624160455 new file mode 100644 index 0000000000000..1cbbae43d33e3 --- /dev/null +++ b/ee/db/geo/schema_migrations/20210624160455 @@ -0,0 +1 @@ +7376c4a2de86ac8879209571757319c9dc1c1b08292f55b904b4e60041d91e56 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20210706120644 b/ee/db/geo/schema_migrations/20210706120644 new file mode 100644 index 0000000000000..44bdcaa498b7a --- /dev/null +++ b/ee/db/geo/schema_migrations/20210706120644 @@ -0,0 +1 @@ +6c974f3987f274ec7cd5ce2225a7cc4170c87a487c981c65b94df4c3a7bd25c9 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20210818111211 b/ee/db/geo/schema_migrations/20210818111211 new file mode 100644 index 0000000000000..f7b76469c2a4a --- /dev/null +++ b/ee/db/geo/schema_migrations/20210818111211 @@ -0,0 +1 @@ +08472c4eefc6f596e2e705c62ea3aedc3c2db40ad8c6e169f597da6504ddfaa1 \ No newline at end of file diff --git a/ee/db/geo/schema_migrations/20210820152707 b/ee/db/geo/schema_migrations/20210820152707 new file mode 100644 index 0000000000000..ece644a520ee8 --- /dev/null +++ b/ee/db/geo/schema_migrations/20210820152707 @@ -0,0 +1 @@ +c57c851e7a2c7f393ae93df48cda9021b49cfb4bc75093462fd49f6502d02175 \ No newline at end of file diff --git a/ee/db/geo/structure.sql b/ee/db/geo/structure.sql new file mode 100644 index 0000000000000..a59a0cfcb4773 --- /dev/null +++ b/ee/db/geo/structure.sql @@ -0,0 +1,621 @@ +CREATE TABLE ar_internal_metadata ( + key character varying NOT NULL, + value character varying, + created_at timestamp(6) without time zone NOT NULL, + updated_at timestamp(6) without time zone NOT NULL +); + +CREATE TABLE container_repository_registry ( + id integer NOT NULL, + container_repository_id integer NOT NULL, + state character varying, + retry_count integer DEFAULT 0, + last_sync_failure character varying, + retry_at timestamp without time zone, + last_synced_at timestamp without time zone, + created_at timestamp without time zone NOT NULL +); + +CREATE SEQUENCE container_repository_registry_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + +ALTER SEQUENCE container_repository_registry_id_seq OWNED BY container_repository_registry.id; + +CREATE TABLE design_registry ( + id integer NOT NULL, + project_id integer NOT NULL, + state character varying(20), + retry_count integer DEFAULT 0, + last_sync_failure character varying, + force_to_redownload boolean, + missing_on_primary boolean, + retry_at timestamp without time zone, + last_synced_at timestamp without time zone, + created_at timestamp without time zone NOT NULL +); + +CREATE SEQUENCE design_registry_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + +ALTER SEQUENCE design_registry_id_seq OWNED BY design_registry.id; + +CREATE TABLE event_log_states ( + event_id bigint NOT NULL, + created_at timestamp without time zone NOT NULL +); + +CREATE SEQUENCE event_log_states_event_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + +ALTER SEQUENCE event_log_states_event_id_seq OWNED BY event_log_states.event_id; + +CREATE TABLE file_registry ( + id integer NOT NULL, + file_type character varying NOT NULL, + file_id integer NOT NULL, + bytes bigint, + sha256 character varying, + created_at timestamp without time zone NOT NULL, + success boolean DEFAULT false NOT NULL, + retry_count integer DEFAULT 0, + retry_at timestamp without time zone, + missing_on_primary boolean DEFAULT false NOT NULL, + state smallint DEFAULT 0 NOT NULL, + last_synced_at timestamp with time zone, + last_sync_failure character varying(255) +); + +CREATE SEQUENCE file_registry_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + +ALTER SEQUENCE file_registry_id_seq OWNED BY file_registry.id; + +CREATE TABLE group_wiki_repository_registry ( + id bigint NOT NULL, + retry_at timestamp with time zone, + last_synced_at timestamp with time zone, + created_at timestamp with time zone NOT NULL, + group_wiki_repository_id bigint NOT NULL, + state smallint DEFAULT 0 NOT NULL, + retry_count smallint DEFAULT 0, + last_sync_failure text, + force_to_redownload boolean, + missing_on_primary boolean +); + +CREATE SEQUENCE group_wiki_repository_registry_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + +ALTER SEQUENCE group_wiki_repository_registry_id_seq OWNED BY group_wiki_repository_registry.id; + +CREATE TABLE job_artifact_registry ( + id integer NOT NULL, + created_at timestamp with time zone, + retry_at timestamp with time zone, + bytes bigint, + artifact_id integer, + retry_count integer, + success boolean, + sha256 character varying, + missing_on_primary boolean DEFAULT false NOT NULL +); + +CREATE SEQUENCE job_artifact_registry_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + +ALTER SEQUENCE job_artifact_registry_id_seq OWNED BY job_artifact_registry.id; + +CREATE TABLE lfs_object_registry ( + id bigint NOT NULL, + created_at timestamp with time zone, + retry_at timestamp with time zone, + bytes bigint, + lfs_object_id integer, + retry_count integer DEFAULT 0, + missing_on_primary boolean DEFAULT false NOT NULL, + success boolean DEFAULT false NOT NULL, + sha256 bytea, + state smallint DEFAULT 0 NOT NULL, + last_synced_at timestamp with time zone, + last_sync_failure text +); + +CREATE SEQUENCE lfs_object_registry_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + +ALTER SEQUENCE lfs_object_registry_id_seq OWNED BY lfs_object_registry.id; + +CREATE TABLE merge_request_diff_registry ( + id bigint NOT NULL, + created_at timestamp with time zone NOT NULL, + retry_at timestamp with time zone, + last_synced_at timestamp with time zone, + merge_request_diff_id bigint NOT NULL, + state smallint DEFAULT 0 NOT NULL, + retry_count smallint DEFAULT 0, + last_sync_failure text, + verification_started_at timestamp with time zone, + verified_at timestamp with time zone, + verification_retry_at timestamp with time zone, + verification_retry_count integer, + verification_state smallint DEFAULT 0 NOT NULL, + checksum_mismatch boolean, + verification_checksum bytea, + verification_checksum_mismatched bytea, + verification_failure character varying(255) +); + +CREATE SEQUENCE merge_request_diff_registry_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + +ALTER SEQUENCE merge_request_diff_registry_id_seq OWNED BY merge_request_diff_registry.id; + +CREATE TABLE package_file_registry ( + id integer NOT NULL, + package_file_id integer NOT NULL, + state integer DEFAULT 0 NOT NULL, + retry_count integer DEFAULT 0, + last_sync_failure character varying(255), + retry_at timestamp with time zone, + last_synced_at timestamp with time zone, + created_at timestamp with time zone NOT NULL, + verification_failure character varying(255), + verification_checksum bytea, + checksum_mismatch boolean, + verification_checksum_mismatched bytea, + verification_retry_count integer, + verified_at timestamp with time zone, + verification_retry_at timestamp with time zone, + verification_state smallint DEFAULT 0 NOT NULL, + verification_started_at timestamp with time zone +); + +CREATE SEQUENCE package_file_registry_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + +ALTER SEQUENCE package_file_registry_id_seq OWNED BY package_file_registry.id; + +CREATE TABLE pages_deployment_registry ( + id bigint NOT NULL, + pages_deployment_id bigint NOT NULL, + created_at timestamp with time zone NOT NULL, + last_synced_at timestamp with time zone, + retry_at timestamp with time zone, + state smallint DEFAULT 0 NOT NULL, + retry_count smallint DEFAULT 0 NOT NULL, + last_sync_failure character varying(255) +); + +CREATE SEQUENCE pages_deployment_registry_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + +ALTER SEQUENCE pages_deployment_registry_id_seq OWNED BY pages_deployment_registry.id; + +CREATE TABLE pipeline_artifact_registry ( + id bigint NOT NULL, + pipeline_artifact_id bigint NOT NULL, + created_at timestamp with time zone NOT NULL, + last_synced_at timestamp with time zone, + retry_at timestamp with time zone, + verified_at timestamp with time zone, + verification_started_at timestamp with time zone, + verification_retry_at timestamp with time zone, + state smallint DEFAULT 0 NOT NULL, + verification_state smallint DEFAULT 0 NOT NULL, + retry_count smallint DEFAULT 0, + verification_retry_count smallint DEFAULT 0, + checksum_mismatch boolean DEFAULT false NOT NULL, + verification_checksum bytea, + verification_checksum_mismatched bytea, + verification_failure character varying(255), + last_sync_failure character varying(255) +); + +CREATE SEQUENCE pipeline_artifact_registry_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + +ALTER SEQUENCE pipeline_artifact_registry_id_seq OWNED BY pipeline_artifact_registry.id; + +CREATE TABLE project_registry ( + id integer NOT NULL, + project_id integer NOT NULL, + last_repository_synced_at timestamp without time zone, + last_repository_successful_sync_at timestamp without time zone, + created_at timestamp without time zone NOT NULL, + resync_repository boolean DEFAULT true NOT NULL, + resync_wiki boolean DEFAULT true NOT NULL, + last_wiki_synced_at timestamp without time zone, + last_wiki_successful_sync_at timestamp without time zone, + repository_retry_count integer, + repository_retry_at timestamp without time zone, + force_to_redownload_repository boolean, + wiki_retry_count integer, + wiki_retry_at timestamp without time zone, + force_to_redownload_wiki boolean, + last_repository_sync_failure character varying, + last_wiki_sync_failure character varying, + last_repository_verification_failure character varying, + last_wiki_verification_failure character varying, + repository_verification_checksum_sha bytea, + wiki_verification_checksum_sha bytea, + repository_checksum_mismatch boolean DEFAULT false NOT NULL, + wiki_checksum_mismatch boolean DEFAULT false NOT NULL, + last_repository_check_failed boolean, + last_repository_check_at timestamp with time zone, + resync_repository_was_scheduled_at timestamp with time zone, + resync_wiki_was_scheduled_at timestamp with time zone, + repository_missing_on_primary boolean, + wiki_missing_on_primary boolean, + repository_verification_retry_count integer, + wiki_verification_retry_count integer, + last_repository_verification_ran_at timestamp with time zone, + last_wiki_verification_ran_at timestamp with time zone, + repository_verification_checksum_mismatched bytea, + wiki_verification_checksum_mismatched bytea, + primary_repository_checksummed boolean DEFAULT false NOT NULL, + primary_wiki_checksummed boolean DEFAULT false NOT NULL +); + +CREATE SEQUENCE project_registry_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + +ALTER SEQUENCE project_registry_id_seq OWNED BY project_registry.id; + +CREATE TABLE schema_migrations ( + version character varying NOT NULL +); + +CREATE TABLE secondary_usage_data ( + id bigint NOT NULL, + created_at timestamp with time zone NOT NULL, + updated_at timestamp with time zone NOT NULL, + payload jsonb DEFAULT '{}'::jsonb NOT NULL +); + +CREATE SEQUENCE secondary_usage_data_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + +ALTER SEQUENCE secondary_usage_data_id_seq OWNED BY secondary_usage_data.id; + +CREATE TABLE snippet_repository_registry ( + id bigint NOT NULL, + retry_at timestamp with time zone, + last_synced_at timestamp with time zone, + created_at timestamp with time zone NOT NULL, + snippet_repository_id bigint NOT NULL, + state smallint DEFAULT 0 NOT NULL, + retry_count smallint DEFAULT 0, + last_sync_failure text, + force_to_redownload boolean, + missing_on_primary boolean, + verification_started_at timestamp with time zone, + verified_at timestamp with time zone, + verification_retry_at timestamp with time zone, + verification_retry_count integer, + verification_state smallint DEFAULT 0 NOT NULL, + checksum_mismatch boolean, + verification_checksum bytea, + verification_checksum_mismatched bytea, + verification_failure character varying(255) +); + +CREATE SEQUENCE snippet_repository_registry_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + +ALTER SEQUENCE snippet_repository_registry_id_seq OWNED BY snippet_repository_registry.id; + +CREATE TABLE terraform_state_version_registry ( + id bigint NOT NULL, + terraform_state_version_id bigint NOT NULL, + state smallint DEFAULT 0 NOT NULL, + retry_count smallint DEFAULT 0 NOT NULL, + retry_at timestamp with time zone, + last_synced_at timestamp with time zone, + created_at timestamp with time zone NOT NULL, + last_sync_failure text, + verification_started_at timestamp with time zone, + verified_at timestamp with time zone, + verification_retry_at timestamp with time zone, + verification_retry_count integer DEFAULT 0, + verification_state smallint DEFAULT 0 NOT NULL, + checksum_mismatch boolean DEFAULT false NOT NULL, + verification_checksum bytea, + verification_checksum_mismatched bytea, + verification_failure character varying(255) +); + +CREATE SEQUENCE terraform_state_version_registry_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + +ALTER SEQUENCE terraform_state_version_registry_id_seq OWNED BY terraform_state_version_registry.id; + +ALTER TABLE ONLY container_repository_registry ALTER COLUMN id SET DEFAULT nextval('container_repository_registry_id_seq'::regclass); + +ALTER TABLE ONLY design_registry ALTER COLUMN id SET DEFAULT nextval('design_registry_id_seq'::regclass); + +ALTER TABLE ONLY event_log_states ALTER COLUMN event_id SET DEFAULT nextval('event_log_states_event_id_seq'::regclass); + +ALTER TABLE ONLY file_registry ALTER COLUMN id SET DEFAULT nextval('file_registry_id_seq'::regclass); + +ALTER TABLE ONLY group_wiki_repository_registry ALTER COLUMN id SET DEFAULT nextval('group_wiki_repository_registry_id_seq'::regclass); + +ALTER TABLE ONLY job_artifact_registry ALTER COLUMN id SET DEFAULT nextval('job_artifact_registry_id_seq'::regclass); + +ALTER TABLE ONLY lfs_object_registry ALTER COLUMN id SET DEFAULT nextval('lfs_object_registry_id_seq'::regclass); + +ALTER TABLE ONLY merge_request_diff_registry ALTER COLUMN id SET DEFAULT nextval('merge_request_diff_registry_id_seq'::regclass); + +ALTER TABLE ONLY package_file_registry ALTER COLUMN id SET DEFAULT nextval('package_file_registry_id_seq'::regclass); + +ALTER TABLE ONLY pages_deployment_registry ALTER COLUMN id SET DEFAULT nextval('pages_deployment_registry_id_seq'::regclass); + +ALTER TABLE ONLY pipeline_artifact_registry ALTER COLUMN id SET DEFAULT nextval('pipeline_artifact_registry_id_seq'::regclass); + +ALTER TABLE ONLY project_registry ALTER COLUMN id SET DEFAULT nextval('project_registry_id_seq'::regclass); + +ALTER TABLE ONLY secondary_usage_data ALTER COLUMN id SET DEFAULT nextval('secondary_usage_data_id_seq'::regclass); + +ALTER TABLE ONLY snippet_repository_registry ALTER COLUMN id SET DEFAULT nextval('snippet_repository_registry_id_seq'::regclass); + +ALTER TABLE ONLY terraform_state_version_registry ALTER COLUMN id SET DEFAULT nextval('terraform_state_version_registry_id_seq'::regclass); + +ALTER TABLE ONLY ar_internal_metadata + ADD CONSTRAINT ar_internal_metadata_pkey PRIMARY KEY (key); + +ALTER TABLE ONLY container_repository_registry + ADD CONSTRAINT container_repository_registry_pkey PRIMARY KEY (id); + +ALTER TABLE ONLY design_registry + ADD CONSTRAINT design_registry_pkey PRIMARY KEY (id); + +ALTER TABLE ONLY event_log_states + ADD CONSTRAINT event_log_states_pkey PRIMARY KEY (event_id); + +ALTER TABLE ONLY file_registry + ADD CONSTRAINT file_registry_pkey PRIMARY KEY (id); + +ALTER TABLE ONLY group_wiki_repository_registry + ADD CONSTRAINT group_wiki_repository_registry_pkey PRIMARY KEY (id); + +ALTER TABLE ONLY job_artifact_registry + ADD CONSTRAINT job_artifact_registry_pkey PRIMARY KEY (id); + +ALTER TABLE ONLY lfs_object_registry + ADD CONSTRAINT lfs_object_registry_pkey PRIMARY KEY (id); + +ALTER TABLE ONLY merge_request_diff_registry + ADD CONSTRAINT merge_request_diff_registry_pkey PRIMARY KEY (id); + +ALTER TABLE ONLY package_file_registry + ADD CONSTRAINT package_file_registry_pkey PRIMARY KEY (id); + +ALTER TABLE ONLY pages_deployment_registry + ADD CONSTRAINT pages_deployment_registry_pkey PRIMARY KEY (id); + +ALTER TABLE ONLY pipeline_artifact_registry + ADD CONSTRAINT pipeline_artifact_registry_pkey PRIMARY KEY (id); + +ALTER TABLE ONLY project_registry + ADD CONSTRAINT project_registry_pkey PRIMARY KEY (id); + +ALTER TABLE ONLY schema_migrations + ADD CONSTRAINT schema_migrations_pkey PRIMARY KEY (version); + +ALTER TABLE ONLY secondary_usage_data + ADD CONSTRAINT secondary_usage_data_pkey PRIMARY KEY (id); + +ALTER TABLE ONLY snippet_repository_registry + ADD CONSTRAINT snippet_repository_registry_pkey PRIMARY KEY (id); + +ALTER TABLE ONLY terraform_state_version_registry + ADD CONSTRAINT terraform_state_version_registry_pkey PRIMARY KEY (id); + +CREATE INDEX idx_project_registry_failed_repositories_partial ON project_registry USING btree (repository_retry_count) WHERE ((repository_retry_count > 0) OR (last_repository_verification_failure IS NOT NULL) OR repository_checksum_mismatch); + +CREATE INDEX idx_project_registry_on_repo_checksums_and_failure_partial ON project_registry USING btree (project_id) WHERE ((repository_verification_checksum_sha IS NULL) AND (last_repository_verification_failure IS NULL)); + +CREATE INDEX idx_project_registry_on_repository_checksum_sha_partial ON project_registry USING btree (repository_verification_checksum_sha) WHERE (repository_verification_checksum_sha IS NULL); + +CREATE INDEX idx_project_registry_on_repository_failure_partial ON project_registry USING btree (project_id) WHERE (last_repository_verification_failure IS NOT NULL); + +CREATE INDEX idx_project_registry_on_wiki_checksum_sha_partial ON project_registry USING btree (wiki_verification_checksum_sha) WHERE (wiki_verification_checksum_sha IS NULL); + +CREATE INDEX idx_project_registry_on_wiki_checksums_and_failure_partial ON project_registry USING btree (project_id) WHERE ((wiki_verification_checksum_sha IS NULL) AND (last_wiki_verification_failure IS NULL)); + +CREATE INDEX idx_project_registry_on_wiki_failure_partial ON project_registry USING btree (project_id) WHERE (last_wiki_verification_failure IS NOT NULL); + +CREATE INDEX idx_project_registry_pending_repositories_partial ON project_registry USING btree (repository_retry_count) WHERE ((repository_retry_count IS NULL) AND (last_repository_successful_sync_at IS NOT NULL) AND ((resync_repository = true) OR ((repository_verification_checksum_sha IS NULL) AND (last_repository_verification_failure IS NULL)))); + +CREATE INDEX idx_project_registry_synced_repositories_partial ON project_registry USING btree (last_repository_successful_sync_at) WHERE ((resync_repository = false) AND (repository_retry_count IS NULL) AND (repository_verification_checksum_sha IS NOT NULL)); + +CREATE INDEX idx_repository_checksum_mismatch ON project_registry USING btree (project_id) WHERE (repository_checksum_mismatch = true); + +CREATE INDEX idx_wiki_checksum_mismatch ON project_registry USING btree (project_id) WHERE (wiki_checksum_mismatch = true); + +CREATE INDEX index_container_repository_registry_on_retry_at ON container_repository_registry USING btree (retry_at); + +CREATE INDEX index_container_repository_registry_on_state ON container_repository_registry USING btree (state); + +CREATE UNIQUE INDEX index_container_repository_registry_repository_id_unique ON container_repository_registry USING btree (container_repository_id); + +CREATE UNIQUE INDEX index_design_registry_on_project_id ON design_registry USING btree (project_id); + +CREATE INDEX index_design_registry_on_retry_at ON design_registry USING btree (retry_at); + +CREATE INDEX index_design_registry_on_state ON design_registry USING btree (state); + +CREATE INDEX index_file_registry_on_file_type ON file_registry USING btree (file_type); + +CREATE UNIQUE INDEX index_file_registry_on_file_type_and_file_id ON file_registry USING btree (file_type, file_id); + +CREATE INDEX index_file_registry_on_retry_at ON file_registry USING btree (retry_at); + +CREATE INDEX index_file_registry_on_success ON file_registry USING btree (success); + +CREATE UNIQUE INDEX index_g_wiki_repository_registry_on_group_wiki_repository_id ON group_wiki_repository_registry USING btree (group_wiki_repository_id); + +CREATE INDEX index_group_wiki_repository_registry_on_retry_at ON group_wiki_repository_registry USING btree (retry_at); + +CREATE INDEX index_group_wiki_repository_registry_on_state ON group_wiki_repository_registry USING btree (state); + +CREATE INDEX index_job_artifact_registry_on_artifact_id ON job_artifact_registry USING btree (artifact_id); + +CREATE INDEX index_job_artifact_registry_on_retry_at ON job_artifact_registry USING btree (retry_at); + +CREATE INDEX index_job_artifact_registry_on_success ON job_artifact_registry USING btree (success); + +CREATE UNIQUE INDEX index_lfs_object_registry_on_lfs_object_id ON lfs_object_registry USING btree (lfs_object_id); + +CREATE INDEX index_lfs_object_registry_on_retry_at ON lfs_object_registry USING btree (retry_at); + +CREATE INDEX index_lfs_object_registry_on_success ON lfs_object_registry USING btree (success); + +CREATE UNIQUE INDEX index_merge_request_diff_registry_on_mr_diff_id ON merge_request_diff_registry USING btree (merge_request_diff_id); + +CREATE INDEX index_merge_request_diff_registry_on_retry_at ON merge_request_diff_registry USING btree (retry_at); + +CREATE INDEX index_merge_request_diff_registry_on_state ON merge_request_diff_registry USING btree (state); + +CREATE INDEX index_package_file_registry_on_repository_id ON package_file_registry USING btree (package_file_id); + +CREATE INDEX index_package_file_registry_on_retry_at ON package_file_registry USING btree (retry_at); + +CREATE INDEX index_package_file_registry_on_state ON package_file_registry USING btree (state); + +CREATE UNIQUE INDEX index_pages_deployment_registry_on_pages_deployment_id ON pages_deployment_registry USING btree (pages_deployment_id); + +CREATE INDEX index_pages_deployment_registry_on_retry_at ON pages_deployment_registry USING btree (retry_at); + +CREATE INDEX index_pages_deployment_registry_on_state ON pages_deployment_registry USING btree (state); + +CREATE UNIQUE INDEX index_pipeline_artifact_registry_on_pipeline_artifact_id ON pipeline_artifact_registry USING btree (pipeline_artifact_id); + +CREATE INDEX index_pipeline_artifact_registry_on_retry_at ON pipeline_artifact_registry USING btree (retry_at); + +CREATE INDEX index_pipeline_artifact_registry_on_state ON pipeline_artifact_registry USING btree (state); + +CREATE INDEX index_project_registry_on_last_repository_successful_sync_at ON project_registry USING btree (last_repository_successful_sync_at); + +CREATE INDEX index_project_registry_on_last_repository_synced_at ON project_registry USING btree (last_repository_synced_at); + +CREATE UNIQUE INDEX index_project_registry_on_project_id ON project_registry USING btree (project_id); + +CREATE INDEX index_project_registry_on_repository_retry_at ON project_registry USING btree (repository_retry_at); + +CREATE INDEX index_project_registry_on_resync_repository ON project_registry USING btree (resync_repository); + +CREATE INDEX index_project_registry_on_resync_wiki ON project_registry USING btree (resync_wiki); + +CREATE INDEX index_project_registry_on_wiki_retry_at ON project_registry USING btree (wiki_retry_at); + +CREATE INDEX index_snippet_repository_registry_on_retry_at ON snippet_repository_registry USING btree (retry_at); + +CREATE UNIQUE INDEX index_snippet_repository_registry_on_snippet_repository_id ON snippet_repository_registry USING btree (snippet_repository_id); + +CREATE INDEX index_snippet_repository_registry_on_state ON snippet_repository_registry USING btree (state); + +CREATE INDEX index_state_in_lfs_objects ON lfs_object_registry USING btree (state); + +CREATE INDEX index_terraform_state_version_registry_on_retry_at ON terraform_state_version_registry USING btree (retry_at); + +CREATE INDEX index_terraform_state_version_registry_on_state ON terraform_state_version_registry USING btree (state); + +CREATE UNIQUE INDEX index_terraform_state_version_registry_on_t_state_version_id ON terraform_state_version_registry USING btree (terraform_state_version_id); + +CREATE UNIQUE INDEX index_tf_state_versions_registry_tf_state_versions_id_unique ON terraform_state_version_registry USING btree (terraform_state_version_id); + +CREATE INDEX merge_request_diff_registry_failed_verification ON merge_request_diff_registry USING btree (verification_retry_at NULLS FIRST) WHERE ((state = 2) AND (verification_state = 3)); + +CREATE INDEX merge_request_diff_registry_needs_verification ON merge_request_diff_registry USING btree (verification_state) WHERE ((state = 2) AND (verification_state = ANY (ARRAY[0, 3]))); + +CREATE INDEX merge_request_diff_registry_pending_verification ON merge_request_diff_registry USING btree (verified_at NULLS FIRST) WHERE ((state = 2) AND (verification_state = 0)); + +CREATE INDEX package_file_registry_failed_verification ON package_file_registry USING btree (verification_retry_at NULLS FIRST) WHERE ((state = 2) AND (verification_state = 3)); + +CREATE INDEX package_file_registry_needs_verification ON package_file_registry USING btree (verification_state) WHERE ((state = 2) AND (verification_state = ANY (ARRAY[0, 3]))); + +CREATE INDEX package_file_registry_pending_verification ON package_file_registry USING btree (verified_at NULLS FIRST) WHERE ((state = 2) AND (verification_state = 0)); + +CREATE INDEX pipeline_artifact_registry_failed_verification ON pipeline_artifact_registry USING btree (verification_retry_at NULLS FIRST) WHERE ((state = 2) AND (verification_state = 3)); + +CREATE INDEX pipeline_artifact_registry_needs_verification ON pipeline_artifact_registry USING btree (verification_state) WHERE ((state = 2) AND (verification_state = ANY (ARRAY[0, 3]))); + +CREATE INDEX pipeline_artifact_registry_pending_verification ON pipeline_artifact_registry USING btree (verified_at NULLS FIRST) WHERE ((state = 2) AND (verification_state = 0)); + +CREATE INDEX snippet_repository_registry_failed_verification ON snippet_repository_registry USING btree (verification_retry_at NULLS FIRST) WHERE ((state = 2) AND (verification_state = 3)); + +CREATE INDEX snippet_repository_registry_needs_verification ON snippet_repository_registry USING btree (verification_state) WHERE ((state = 2) AND (verification_state = ANY (ARRAY[0, 3]))); + +CREATE INDEX snippet_repository_registry_pending_verification ON snippet_repository_registry USING btree (verified_at NULLS FIRST) WHERE ((state = 2) AND (verification_state = 0)); + +CREATE INDEX terraform_state_version_registry_failed_verification ON terraform_state_version_registry USING btree (verification_retry_at NULLS FIRST) WHERE ((state = 2) AND (verification_state = 3)); + +CREATE INDEX terraform_state_version_registry_needs_verification ON terraform_state_version_registry USING btree (verification_state) WHERE ((state = 2) AND (verification_state = ANY (ARRAY[0, 3]))); + +CREATE INDEX terraform_state_version_registry_pending_verification ON terraform_state_version_registry USING btree (verified_at NULLS FIRST) WHERE ((state = 2) AND (verification_state = 0)); diff --git a/ee/lib/gitlab/geo/database_tasks.rb b/ee/lib/gitlab/geo/database_tasks.rb index 3e7fc82a7b340..31d8e97d10f58 100644 --- a/ee/lib/gitlab/geo/database_tasks.rb +++ b/ee/lib/gitlab/geo/database_tasks.rb @@ -64,10 +64,7 @@ def dump require 'active_record/schema_dumper' Gitlab::Geo::DatabaseTasks.with_geo_db do - filename = ENV['SCHEMA'] || File.join(ActiveRecord::Tasks::DatabaseTasks.db_dir, 'schema.rb') - File.open(filename, "w:utf-8") do |file| - ActiveRecord::SchemaDumper.dump(ActiveRecord::Base.connection, file) - end + ActiveRecord::Tasks::DatabaseTasks.dump_schema(Gitlab::Geo::DatabaseTasks.db_config) end end end @@ -132,10 +129,10 @@ def load Gitlab::Geo::DatabaseTasks.with_geo_db do should_reconnect = ActiveRecord::Base.connection_pool.active_connection? ActiveRecord::Schema.verbose = false - ActiveRecord::Tasks::DatabaseTasks.load_schema(ActiveRecord::Base.configurations.configs_for(env_name: 'test').first, :ruby, ENV['SCHEMA']) + ActiveRecord::Tasks::DatabaseTasks.load_schema(ActiveRecord::Base.configurations.configs_for(env_name: 'test').first, :sql, ENV['SCHEMA']) ensure if should_reconnect - ActiveRecord::Base.establish_connection(ActiveRecord::Base.configurations.configs_for(env_name: ActiveRecord::Tasks::DatabaseTasks.env).first) + ActiveRecord::Base.establish_connection(Gitlab::Geo::DatabaseTasks.db_config) end end end @@ -152,6 +149,7 @@ def geo_settings database_config: YAML.load_file(GEO_DATABASE_CONFIG), db_dir: GEO_DB_DIR, migrations_paths: geo_migrations_paths, + schema_migrations_path: geo_schema_migrations_path, seed_loader: SeedLoader.new } end @@ -170,6 +168,10 @@ def geo_post_migration_path Rails.root.join(GEO_DB_DIR, 'post_migrate') end + def geo_schema_migrations_path + Rails.root.join(GEO_DB_DIR, 'schema_migrations').to_s + end + def with_geo_db abort_if_no_geo_config! @@ -177,7 +179,8 @@ def with_geo_db database_config: ActiveRecord::Tasks::DatabaseTasks.database_configuration&.dup || YAML.load_file(DATABASE_CONFIG), db_dir: ActiveRecord::Tasks::DatabaseTasks.db_dir, migrations_paths: ActiveRecord::Tasks::DatabaseTasks.migrations_paths, - seed_loader: ActiveRecord::Tasks::DatabaseTasks.seed_loader + seed_loader: ActiveRecord::Tasks::DatabaseTasks.seed_loader, + schema_migrations_path: Gitlab::Database::SchemaMigrations::Context.default_schema_migrations_path } set_db_env(geo_settings) @@ -187,16 +190,21 @@ def with_geo_db set_db_env(original_settings) end + def db_config + ActiveRecord::Base.configurations.configs_for(env_name: ActiveRecord::Tasks::DatabaseTasks.env).first + end + def set_db_env(settings) ActiveRecord::Tasks::DatabaseTasks.database_configuration = settings[:database_config] ActiveRecord::Tasks::DatabaseTasks.db_dir = settings[:db_dir] ActiveRecord::Tasks::DatabaseTasks.migrations_paths = settings[:migrations_paths] ActiveRecord::Tasks::DatabaseTasks.seed_loader = settings[:seed_loader] - ActiveRecord::Base.configurations = ActiveRecord::Tasks::DatabaseTasks.database_configuration || {} + ActiveRecord::Base.configurations = ActiveRecord::Tasks::DatabaseTasks.database_configuration || {} ActiveRecord::Migrator.migrations_paths = ActiveRecord::Tasks::DatabaseTasks.migrations_paths + Gitlab::Database::SchemaMigrations::Context.default_schema_migrations_path = settings[:schema_migrations_path] - ActiveRecord::Base.establish_connection(ActiveRecord::Base.configurations.configs_for(env_name: ActiveRecord::Tasks::DatabaseTasks.env).first) + ActiveRecord::Base.establish_connection(db_config) end class SeedLoader diff --git a/ee/lib/tasks/geo.rake b/ee/lib/tasks/geo.rake index ee39b37e031b1..70134d0046425 100644 --- a/ee/lib/tasks/geo.rake +++ b/ee/lib/tasks/geo.rake @@ -38,7 +38,7 @@ namespace :geo do puts "Current version: #{Gitlab::Geo::DatabaseTasks.version}" end - desc 'GitLab | Geo | DB | Drops and recreates the database from ee/db/geo/schema.rb for the current environment and loads the seeds.' + desc 'GitLab | Geo | DB | Drops and recreates the database from ee/db/geo/structure.sql for the current environment and loads the seeds.' task reset: [:environment] do ns['drop'].invoke ns['create'].invoke @@ -77,12 +77,12 @@ namespace :geo do end namespace :schema do - desc 'GitLab | Geo | DB | Schema | Load a schema.rb file into the database' + desc 'GitLab | Geo | DB | Schema | Load a structure.sql file into the database' task load: [:environment] do - Gitlab::Geo::DatabaseTasks.load_schema_current(:ruby, ENV['SCHEMA']) + Gitlab::Geo::DatabaseTasks.load_schema_current(ActiveRecord::Base.schema_format, ENV['SCHEMA']) end - desc 'GitLab | Geo | DB | Schema | Create a ee/db/geo/schema.rb file that is portable against any DB supported by AR' + desc 'GitLab | Geo | DB | Schema | Create a ee/db/geo/structure.sql file that is portable against any DB supported by AR' task dump: [:environment] do Gitlab::Geo::DatabaseTasks::Schema.dump @@ -90,6 +90,13 @@ namespace :geo do end end + # Inform Rake that custom tasks should be run every time rake db:schema:dump is run + Rake::Task['geo:db:schema:dump'].enhance do + Gitlab::Geo::DatabaseTasks.with_geo_db do + Rake::Task['gitlab:db:clean_structure_sql'].invoke + end + end + namespace :migrate do desc 'GitLab | Geo | DB | Migrate | Runs the "up" for a given migration VERSION.' task up: [:environment] do diff --git a/ee/spec/lib/gitlab/geo/database_tasks_spec.rb b/ee/spec/lib/gitlab/geo/database_tasks_spec.rb index 90470c73961fe..0a901a642dba8 100644 --- a/ee/spec/lib/gitlab/geo/database_tasks_spec.rb +++ b/ee/spec/lib/gitlab/geo/database_tasks_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' RSpec.describe Gitlab::Geo::DatabaseTasks, :reestablished_active_record_base do - let(:schema_file) { Rails.root.join('tmp', 'tests', 'geo_schema.rb').to_s } + let(:schema_file) { Rails.root.join('tmp', 'tests', 'geo_structure.sql').to_s } subject { described_class } @@ -59,8 +59,8 @@ describe described_class::Schema do describe '.dump' do - it 'calls ActiveRecord::SchemaDumper.dump' do - expect(ActiveRecord::SchemaDumper).to receive(:dump) + it 'calls ActiveRecord::Tasks::DatabaseTasks.dump_schema' do + expect(ActiveRecord::Tasks::DatabaseTasks).to receive(:dump_schema) subject.dump end diff --git a/ee/spec/tasks/geo_rake_spec.rb b/ee/spec/tasks/geo_rake_spec.rb index 95d21b9886b3c..2b94b446ab0a4 100644 --- a/ee/spec/tasks/geo_rake_spec.rb +++ b/ee/spec/tasks/geo_rake_spec.rb @@ -6,7 +6,13 @@ include ::EE::GeoHelpers before do + Rake.application.rake_require 'active_record/railties/databases' + Rake.application.rake_require 'tasks/gitlab/db' Rake.application.rake_require 'tasks/geo' + + # empty task as env is already loaded + Rake::Task.define_task :environment + stub_licensed_features(geo: true) end @@ -133,15 +139,16 @@ describe 'geo:db:schema_load' do it 'loads schema file into database' do allow(ENV).to receive(:[]).with('SCHEMA') - expect(Gitlab::Geo::DatabaseTasks).to receive(:load_schema_current).with(:ruby, ENV['SCHEMA']) + expect(Gitlab::Geo::DatabaseTasks).to receive(:load_schema_current).with(:sql, ENV['SCHEMA']) run_rake_task('geo:db:schema:load') end end describe 'geo:db:schema_dump' do - it 'creates schema.rb file' do + it 'creates a clean structure.sql file', :reestablished_active_record_base do expect(Gitlab::Geo::DatabaseTasks::Schema).to receive(:dump) + expect(Rake::Task['gitlab:db:clean_structure_sql']).to receive(:invoke) run_rake_task('geo:db:schema:dump') end -- GitLab