diff options
Diffstat (limited to 'db')
-rw-r--r-- | db/fixtures/development/14_pipelines.rb | 8 | ||||
-rw-r--r-- | db/fixtures/development/19_environments.rb | 20 | ||||
-rw-r--r-- | db/migrate/20181030150739_add_action_to_deployments.rb | 24 | ||||
-rw-r--r-- | db/migrate/20181106135939_add_index_to_deployments.rb | 29 | ||||
-rw-r--r-- | db/schema.rb | 47 |
5 files changed, 97 insertions, 31 deletions
diff --git a/db/fixtures/development/14_pipelines.rb b/db/fixtures/development/14_pipelines.rb index 5af77c49913..e4272cbee33 100644 --- a/db/fixtures/development/14_pipelines.rb +++ b/db/fixtures/development/14_pipelines.rb @@ -43,12 +43,14 @@ class Gitlab::Seeder::Pipelines # deploy stage { name: 'staging', stage: 'deploy', environment: 'staging', status_event: :success, - options: { environment: { action: 'start', on_stop: 'stop staging' } }, + options: { environment: { name: 'staging', action: 'start', on_stop: 'stop staging' } }, queued_at: 7.hour.ago, started_at: 6.hour.ago, finished_at: 4.hour.ago }, { name: 'stop staging', stage: 'deploy', environment: 'staging', - when: 'manual', status: :skipped }, + when: 'manual', status: :skipped, + options: { environment: { name: 'staging', action: 'stop' } } }, { name: 'production', stage: 'deploy', environment: 'production', - when: 'manual', status: :skipped }, + when: 'manual', status: :skipped, + options: { environment: { name: 'production' } } }, # notify stage { name: 'slack', stage: 'notify', when: 'manual', status: :success }, diff --git a/db/fixtures/development/19_environments.rb b/db/fixtures/development/19_environments.rb index 3e227928a29..031a04ac76b 100644 --- a/db/fixtures/development/19_environments.rb +++ b/db/fixtures/development/19_environments.rb @@ -45,14 +45,18 @@ class Gitlab::Seeder::Environments end def create_deployment!(project, name, ref, sha) - environment = find_or_create_environment!(project, name) - environment.deployments.create!( - project: project, - ref: ref, - sha: sha, - tag: false, - deployable: find_deployable(project, name) - ) + find_deployable(project, name).try do |deployable| + environment = find_or_create_environment!(project, name) + environment.deployments.create!( + project: project, + ref: ref, + sha: sha, + tag: false, + deployable: deployable + ).tap do |deployment| + deployment.succeed! + end + end end def find_or_create_environment!(project, name) diff --git a/db/migrate/20181030150739_add_action_to_deployments.rb b/db/migrate/20181030150739_add_action_to_deployments.rb new file mode 100644 index 00000000000..a8c3a8ee69c --- /dev/null +++ b/db/migrate/20181030150739_add_action_to_deployments.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +class AddActionToDeployments < ActiveRecord::Migration + include Gitlab::Database::MigrationHelpers + + DEPLOYMENT_ACTION_START = 1 # Equivalent to Deployment.actions['start'] + + DOWNTIME = false + + disable_ddl_transaction! + + def up + add_column_with_default(:deployments, + :action, + :integer, + limit: 2, + default: DEPLOYMENT_ACTION_START, + allow_null: false) + end + + def down + remove_column(:deployments, :action) + end +end diff --git a/db/migrate/20181106135939_add_index_to_deployments.rb b/db/migrate/20181106135939_add_index_to_deployments.rb index 999c4a9e575..47c704a03ae 100644 --- a/db/migrate/20181106135939_add_index_to_deployments.rb +++ b/db/migrate/20181106135939_add_index_to_deployments.rb @@ -4,26 +4,27 @@ class AddIndexToDeployments < ActiveRecord::Migration include Gitlab::Database::MigrationHelpers DOWNTIME = false + SHORT_INDEX_NAME_FOR_ENVIRONMENT_ID = 'index_deployments_on_env_deployed_for_id' + SHORT_INDEX_NAME_FOR_ENVIRONMENT_IID = 'index_deployments_on_env_deployed_for_iid' + SHORT_INDEX_NAME_FOR_PROJECT_FINISHED_AT = 'index_deployments_on_prj_deployed_for_finished_at' disable_ddl_transaction! def up - remove_concurrent_index :deployments, [:project_id, :status] - remove_concurrent_index :deployments, [:environment_id, :status] - add_concurrent_index :deployments, [:project_id, :status, :id] - add_concurrent_index :deployments, [:project_id, :status, :iid] - add_concurrent_index :deployments, [:environment_id, :status, :id] - add_concurrent_index :deployments, [:environment_id, :status, :iid] - add_concurrent_index :deployments, [:environment_id, :sha] + add_concurrent_index :deployments, [:project_id, :action, :status, :id] + add_concurrent_index :deployments, [:project_id, :action, :status, :iid] + add_concurrent_index :deployments, [:project_id, :action, :status, :finished_at], name: SHORT_INDEX_NAME_FOR_PROJECT_FINISHED_AT + add_concurrent_index :deployments, [:environment_id, :action, :status, :id], name: SHORT_INDEX_NAME_FOR_ENVIRONMENT_ID + add_concurrent_index :deployments, [:environment_id, :action, :status, :iid], name: SHORT_INDEX_NAME_FOR_ENVIRONMENT_IID + add_concurrent_index :deployments, [:environment_id, :action, :sha] end def down - add_concurrent_index :deployments, [:project_id, :status] - add_concurrent_index :deployments, [:environment_id, :status] - remove_concurrent_index :deployments, [:project_id, :status, :id] - remove_concurrent_index :deployments, [:project_id, :status, :iid] - remove_concurrent_index :deployments, [:environment_id, :status, :id] - remove_concurrent_index :deployments, [:environment_id, :status, :iid] - remove_concurrent_index :deployments, [:environment_id, :sha] + remove_concurrent_index :deployments, [:project_id, :action, :status, :id] + remove_concurrent_index :deployments, [:project_id, :action, :status, :iid] + remove_concurrent_index_by_name(:deployments, SHORT_INDEX_NAME_FOR_PROJECT_FINISHED_AT) + remove_concurrent_index_by_name(:deployments, SHORT_INDEX_NAME_FOR_ENVIRONMENT_ID) + remove_concurrent_index_by_name(:deployments, SHORT_INDEX_NAME_FOR_ENVIRONMENT_IID) + remove_concurrent_index :deployments, [:environment_id, :action, :sha] end end diff --git a/db/schema.rb b/db/schema.rb index d31f6f09b78..ae9b1f24a4b 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -827,19 +827,23 @@ ActiveRecord::Schema.define(version: 20181106135939) do t.string "on_stop" t.integer "status", limit: 2, default: 2, null: false t.datetime_with_timezone "finished_at" + t.integer "action", limit: 2, default: 1, null: false end add_index "deployments", ["created_at"], name: "index_deployments_on_created_at", using: :btree add_index "deployments", ["deployable_type", "deployable_id"], name: "index_deployments_on_deployable_type_and_deployable_id", using: :btree + add_index "deployments", ["environment_id", "action", "sha"], name: "index_deployments_on_environment_id_and_action_and_sha", using: :btree + add_index "deployments", ["environment_id", "action", "status", "id"], name: "index_deployments_on_env_deployed_for_id", using: :btree + add_index "deployments", ["environment_id", "action", "status", "iid"], name: "index_deployments_on_env_deployed_for_iid", using: :btree add_index "deployments", ["environment_id", "id"], name: "index_deployments_on_environment_id_and_id", using: :btree add_index "deployments", ["environment_id", "iid", "project_id"], name: "index_deployments_on_environment_id_and_iid_and_project_id", using: :btree - add_index "deployments", ["environment_id", "sha"], name: "index_deployments_on_environment_id_and_sha", using: :btree - add_index "deployments", ["environment_id", "status", "id"], name: "index_deployments_on_environment_id_and_status_and_id", using: :btree - add_index "deployments", ["environment_id", "status", "iid"], name: "index_deployments_on_environment_id_and_status_and_iid", using: :btree + add_index "deployments", ["environment_id", "status"], name: "index_deployments_on_environment_id_and_status", using: :btree add_index "deployments", ["id"], name: "partial_index_deployments_for_legacy_successful_deployments", where: "((finished_at IS NULL) AND (status = 2))", using: :btree + add_index "deployments", ["project_id", "action", "status", "finished_at"], name: "index_deployments_on_prj_deployed_for_finished_at", using: :btree + add_index "deployments", ["project_id", "action", "status", "id"], name: "index_deployments_on_project_id_and_action_and_status_and_id", using: :btree + add_index "deployments", ["project_id", "action", "status", "iid"], name: "index_deployments_on_project_id_and_action_and_status_and_iid", using: :btree add_index "deployments", ["project_id", "iid"], name: "index_deployments_on_project_id_and_iid", unique: true, using: :btree - add_index "deployments", ["project_id", "status", "id"], name: "index_deployments_on_project_id_and_status_and_id", using: :btree - add_index "deployments", ["project_id", "status", "iid"], name: "index_deployments_on_project_id_and_status_and_iid", using: :btree + add_index "deployments", ["project_id", "status"], name: "index_deployments_on_project_id_and_status", using: :btree create_table "emails", force: :cascade do |t| t.integer "user_id", null: false @@ -927,6 +931,35 @@ ActiveRecord::Schema.define(version: 20181106135939) do add_index "forked_project_links", ["forked_to_project_id"], name: "index_forked_project_links_on_forked_to_project_id", unique: true, using: :btree + create_table "gcp_clusters", force: :cascade do |t| + t.integer "project_id", null: false + t.integer "user_id" + t.integer "service_id" + t.integer "status" + t.integer "gcp_cluster_size", null: false + t.datetime_with_timezone "created_at", null: false + t.datetime_with_timezone "updated_at", null: false + t.boolean "enabled", default: true + t.text "status_reason" + t.string "project_namespace" + t.string "endpoint" + t.text "ca_cert" + t.text "encrypted_kubernetes_token" + t.string "encrypted_kubernetes_token_iv" + t.string "username" + t.text "encrypted_password" + t.string "encrypted_password_iv" + t.string "gcp_project_id", null: false + t.string "gcp_cluster_zone", null: false + t.string "gcp_cluster_name", null: false + t.string "gcp_machine_type" + t.string "gcp_operation_id" + t.text "encrypted_gcp_token" + t.string "encrypted_gcp_token_iv" + end + + add_index "gcp_clusters", ["project_id"], name: "index_gcp_clusters_on_project_id", unique: true, using: :btree + create_table "gpg_key_subkeys", force: :cascade do |t| t.integer "gpg_key_id", null: false t.binary "keyid" @@ -1827,7 +1860,6 @@ ActiveRecord::Schema.define(version: 20181106135939) do end add_index "redirect_routes", ["path"], name: "index_redirect_routes_on_path", unique: true, using: :btree - add_index "redirect_routes", ["path"], name: "index_redirect_routes_on_path_text_pattern_ops", using: :btree, opclasses: {"path"=>"varchar_pattern_ops"} add_index "redirect_routes", ["source_type", "source_id"], name: "index_redirect_routes_on_source_type_and_source_id", using: :btree create_table "releases", force: :cascade do |t| @@ -2411,6 +2443,9 @@ ActiveRecord::Schema.define(version: 20181106135939) do add_foreign_key "fork_network_members", "projects", on_delete: :cascade add_foreign_key "fork_networks", "projects", column: "root_project_id", name: "fk_e7b436b2b5", on_delete: :nullify add_foreign_key "forked_project_links", "projects", column: "forked_to_project_id", name: "fk_434510edb0", on_delete: :cascade + add_foreign_key "gcp_clusters", "projects", on_delete: :cascade + add_foreign_key "gcp_clusters", "services", on_delete: :nullify + add_foreign_key "gcp_clusters", "users", on_delete: :nullify add_foreign_key "gpg_key_subkeys", "gpg_keys", on_delete: :cascade add_foreign_key "gpg_keys", "users", on_delete: :cascade add_foreign_key "gpg_signatures", "gpg_key_subkeys", on_delete: :nullify |