Revert "Merge branch 'revert-drop-gcp-clusters-table' into 'master'"

This commit is contained in:
Kamil Trzciński 2018-11-14 11:21:05 +00:00 committed by Andreas Brandl
parent 7674a8f477
commit a7192e2efc
4 changed files with 95 additions and 32 deletions

View File

@ -0,0 +1,5 @@
---
title: Drop gcp_clusters table
merge_request: 22713
author:
type: other

View File

@ -0,0 +1,37 @@
# frozen_string_literal: true
class DropFkGcpClustersTable < ActiveRecord::Migration
include Gitlab::Database::MigrationHelpers
DOWNTIME = false
disable_ddl_transaction!
def up
remove_foreign_key_if_exists :gcp_clusters, column: :project_id
remove_foreign_key_if_exists :gcp_clusters, column: :user_id
remove_foreign_key_if_exists :gcp_clusters, column: :service_id
end
def down
add_foreign_key_if_not_exists :gcp_clusters, :projects, column: :project_id, on_delete: :cascade
add_foreign_key_if_not_exists :gcp_clusters, :users, column: :user_id, on_delete: :nullify
add_foreign_key_if_not_exists :gcp_clusters, :services, column: :service_id, on_delete: :nullify
end
private
def add_foreign_key_if_not_exists(source, target, column:, on_delete:)
return unless table_exists?(source)
return if foreign_key_exists?(source, target, column: column)
add_concurrent_foreign_key(source, target, column: column, on_delete: on_delete)
end
def remove_foreign_key_if_exists(table, column:)
return unless table_exists?(table)
return unless foreign_key_exists?(table, column: column)
remove_foreign_key(table, column: column)
end
end

View File

@ -0,0 +1,53 @@
# frozen_string_literal: true
class DropGcpClustersTable < ActiveRecord::Migration
include Gitlab::Database::MigrationHelpers
DOWNTIME = false
def up
drop_table :gcp_clusters
end
def down
create_table :gcp_clusters do |t|
# Order columns by best align scheme
t.references :project, null: false, index: { unique: true }, foreign_key: { on_delete: :cascade }
t.references :user, foreign_key: { on_delete: :nullify }
t.references :service, foreign_key: { on_delete: :nullify }
t.integer :status
t.integer :gcp_cluster_size, null: false
# Timestamps
t.datetime_with_timezone :created_at, null: false
t.datetime_with_timezone :updated_at, null: false
# Enable/disable
t.boolean :enabled, default: true
# General
t.text :status_reason
# k8s integration specific
t.string :project_namespace
# Cluster details
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
# GKE
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
end
end

View File

@ -936,35 +936,6 @@ ActiveRecord::Schema.define(version: 20181107054254) 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"
@ -2450,9 +2421,6 @@ ActiveRecord::Schema.define(version: 20181107054254) 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