Add workspace variables table and add PAT to workspaces table
What does this MR do and why?
Issue: Rails: DB migrations and model class updates fo... (#421505 - closed)
- Add workspace variables table
- Add PAT to workspaces table
- Add config version to workspaces table
Database Changes
Up migration
➜ gitlab git:(vtak/private_repos_db_migrations) ✗ bin/rails db:migrate
main: == [advisory_lock_connection] object_id: 225120, pg_backend_pid: 66037
main: == 20230821000001 CreateWorkspaceVariables: migrating =========================
main: -- create_table(:workspace_variables)
main: -- quote_column_name(:key)
main: -> 0.0000s
main: -> 0.0205s
main: == 20230821000001 CreateWorkspaceVariables: migrated (0.0825s) ================
main: == [advisory_lock_connection] object_id: 225120, pg_backend_pid: 66037
ci: == [advisory_lock_connection] object_id: 225420, pg_backend_pid: 66039
ci: == 20230821000001 CreateWorkspaceVariables: migrating =========================
ci: -- create_table(:workspace_variables)
ci: -- quote_column_name(:key)
ci: -> 0.0000s
ci: -> 0.0194s
I, [2023-08-21T09:40:12.166356 #65901] INFO -- : Database: 'ci', Table: 'workspace_variables': Lock Writes
ci: == 20230821000001 CreateWorkspaceVariables: migrated (0.0451s) ================
ci: == [advisory_lock_connection] object_id: 225420, pg_backend_pid: 66039
main: == [advisory_lock_connection] object_id: 225600, pg_backend_pid: 66042
main: == 20230821000002 AddPersonalAccessTokenIdToWorkspaces: migrating =============
main: -- transaction_open?()
main: -> 0.0000s
main: -- add_column(:workspaces, :personal_access_token_id, :bigint)
main: -> 0.0014s
main: -- transaction_open?()
main: -> 0.0000s
main: -- view_exists?(:postgres_partitions)
main: -> 0.0010s
main: -- index_exists?(:workspaces, :personal_access_token_id, {:name=>"index_workspaces_on_personal_access_token_id", :algorithm=>:concurrently})
main: -> 0.0055s
main: -- execute("SET statement_timeout TO 0")
main: -> 0.0002s
main: -- add_index(:workspaces, :personal_access_token_id, {:name=>"index_workspaces_on_personal_access_token_id", :algorithm=>:concurrently})
main: -> 0.0068s
main: -- execute("RESET statement_timeout")
main: -> 0.0002s
main: -- transaction_open?()
main: -> 0.0000s
main: -- transaction_open?()
main: -> 0.0000s
main: -- execute("ALTER TABLE workspaces ADD CONSTRAINT fk_ec70695b2c FOREIGN KEY (personal_access_token_id) REFERENCES personal_access_tokens (id) ON DELETE RESTRICT NOT VALID;")
main: -> 0.0010s
main: -- execute("ALTER TABLE workspaces VALIDATE CONSTRAINT fk_ec70695b2c;")
main: -> 0.0052s
main: == 20230821000002 AddPersonalAccessTokenIdToWorkspaces: migrated (0.0697s) ====
main: == [advisory_lock_connection] object_id: 225600, pg_backend_pid: 66042
ci: == [advisory_lock_connection] object_id: 225920, pg_backend_pid: 66045
ci: == 20230821000002 AddPersonalAccessTokenIdToWorkspaces: migrating =============
ci: -- transaction_open?()
ci: -> 0.0000s
ci: -- add_column(:workspaces, :personal_access_token_id, :bigint)
ci: -> 0.0015s
ci: -- transaction_open?()
ci: -> 0.0000s
ci: -- view_exists?(:postgres_partitions)
ci: -> 0.0007s
ci: -- index_exists?(:workspaces, :personal_access_token_id, {:name=>"index_workspaces_on_personal_access_token_id", :algorithm=>:concurrently})
ci: -> 0.0061s
ci: -- execute("SET statement_timeout TO 0")
ci: -> 0.0004s
ci: -- add_index(:workspaces, :personal_access_token_id, {:name=>"index_workspaces_on_personal_access_token_id", :algorithm=>:concurrently})
ci: -> 0.0046s
ci: -- execute("RESET statement_timeout")
ci: -> 0.0003s
ci: -- transaction_open?()
ci: -> 0.0000s
ci: -- transaction_open?()
ci: -> 0.0000s
ci: -- execute("ALTER TABLE workspaces ADD CONSTRAINT fk_ec70695b2c FOREIGN KEY (personal_access_token_id) REFERENCES personal_access_tokens (id) ON DELETE RESTRICT NOT VALID;")
ci: -> 0.0008s
ci: -- execute("ALTER TABLE workspaces VALIDATE CONSTRAINT fk_ec70695b2c;")
ci: -> 0.0039s
ci: == 20230821000002 AddPersonalAccessTokenIdToWorkspaces: migrated (0.0677s) ====
ci: == [advisory_lock_connection] object_id: 225920, pg_backend_pid: 66045
main: == [advisory_lock_connection] object_id: 226320, pg_backend_pid: 66049
main: == 20230821000003 AddConfigVersionToWorkspaces: migrating =====================
main: -- transaction_open?()
main: -> 0.0000s
main: -- add_column(:workspaces, :config_version, :int, {:default=>1, :null=>false})
main: -> 0.0014s
main: == 20230821000003 AddConfigVersionToWorkspaces: migrated (0.0056s) ============
main: == [advisory_lock_connection] object_id: 226320, pg_backend_pid: 66049
ci: == [advisory_lock_connection] object_id: 226480, pg_backend_pid: 66051
ci: == 20230821000003 AddConfigVersionToWorkspaces: migrating =====================
ci: -- transaction_open?()
ci: -> 0.0000s
ci: -- add_column(:workspaces, :config_version, :int, {:default=>1, :null=>false})
ci: -> 0.0028s
ci: == 20230821000003 AddConfigVersionToWorkspaces: migrated (0.0237s) ============
ci: == [advisory_lock_connection] object_id: 226480, pg_backend_pid: 66051
Down migration
main database
➜ gitlab git:(vtak/private_repos_db_migrations) ✗ bin/rails db:rollback:main STEP=2
main: == [advisory_lock_connection] object_id: 224840, pg_backend_pid: 66703n STEP=2
main: == 20230821000003 AddConfigVersionToWorkspaces: reverting =====================
main: -- transaction_open?()
main: -> 0.0000s
main: -- remove_column(:workspaces, :config_version, {:if_exists=>true})
main: -> 0.0615s
main: == 20230821000003 AddConfigVersionToWorkspaces: reverted (0.0777s) ============
main: == 20230821000002 AddPersonalAccessTokenIdToWorkspaces: reverting =============
main: -- transaction_open?()
main: -> 0.0000s
main: -- view_exists?(:postgres_partitions)
main: -> 0.0006s
main: -- indexes(:workspaces)
main: -> 0.0055s
main: -- execute("SET statement_timeout TO 0")
main: -> 0.0002s
main: -- remove_index(:workspaces, {:algorithm=>:concurrently, :name=>"index_workspaces_on_personal_access_token_id"})
main: -> 0.0025s
main: -- execute("RESET statement_timeout")
main: -> 0.0003s
main: -- transaction_open?()
main: -> 0.0000s
main: -- remove_column(:workspaces, :personal_access_token_id, {:if_exists=>true})
main: -> 0.0037s
main: == 20230821000002 AddPersonalAccessTokenIdToWorkspaces: reverted (0.0521s) ====
main: == [advisory_lock_connection] object_id: 224840, pg_backend_pid: 66703
ci database
➜ gitlab git:(vtak/private_repos_db_migrations) ✗ bin/rails db:rollback:ci STEP=2
ci: == [advisory_lock_connection] object_id: 224820, pg_backend_pid: 67266
ci: == 20230821000003 AddConfigVersionToWorkspaces: reverting =====================
ci: -- transaction_open?()
ci: -> 0.0000s
ci: -- remove_column(:workspaces, :config_version, {:if_exists=>true})
ci: -> 0.0595s
ci: == 20230821000003 AddConfigVersionToWorkspaces: reverted (0.0947s) ============
ci: == 20230821000002 AddPersonalAccessTokenIdToWorkspaces: reverting =============
ci: -- transaction_open?()
ci: -> 0.0000s
ci: -- view_exists?(:postgres_partitions)
ci: -> 0.0007s
ci: -- indexes(:workspaces)
ci: -> 0.0050s
ci: -- execute("SET statement_timeout TO 0")
ci: -> 0.0003s
ci: -- remove_index(:workspaces, {:algorithm=>:concurrently, :name=>"index_workspaces_on_personal_access_token_id"})
ci: -> 0.0022s
ci: -- execute("RESET statement_timeout")
ci: -> 0.0003s
ci: -- transaction_open?()
ci: -> 0.0000s
ci: -- remove_column(:workspaces, :personal_access_token_id, {:if_exists=>true})
ci: -> 0.0033s
ci: == 20230821000002 AddPersonalAccessTokenIdToWorkspaces: reverted (0.0667s) ====
ci: == [advisory_lock_connection] object_id: 224820, pg_backend_pid: 67266
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.
Edited by Vishal Tak