Prepare deployments table for bigint conversion
What does this MR do?
Prepare conversion of deployments.deployable_id
to bigint because this references ci_builds.id
.
Related to #329535 (closed)
Migration output
Up
== 20210525085158 InitializeConversionOfDeploymentsToBigint: migrating ========
-- table_exists?(:deployments)
-> 0.0016s
-- column_exists?(:deployments, :id)
-> 0.0018s
-- column_exists?(:deployments, :deployable_id)
-> 0.0011s
-- columns(:deployments)
-> 0.0012s
-- add_column(:deployments, "deployable_id_convert_to_bigint", :bigint, {:default=>nil})
-> 0.0077s
== 20210525085158 InitializeConversionOfDeploymentsToBigint: migrated (0.0476s)
== 20210525085325 BackfillDeploymentsForBigintConversion: migrating ===========
-- table_exists?(:deployments)
-> 0.0013s
-- column_exists?(:deployments, :id)
-> 0.0013s
-- column_exists?(:deployments, :deployable_id)
-> 0.0011s
-- column_exists?(:deployments, "deployable_id_convert_to_bigint")
-> 0.0015s
unknown OID 28: failed to recognize type of 'relfrozenxid'. It will be treated as String.
unknown OID 1034: failed to recognize type of 'relacl'. It will be treated as String.
unknown OID 194: failed to recognize type of 'relpartbound'. It will be treated as String.
== 20210525085325 BackfillDeploymentsForBigintConversion: migrated (0.0686s) ==
Down
== 20210525085325 BackfillDeploymentsForBigintConversion: reverting ===========
-- execute("DELETE FROM batched_background_migrations WHERE job_class_name = 'CopyColumnUsingBackgroundMigrationJob' AND table_name = 'deployments' AND column_name = 'id' AND job_arguments = '[[\"deployable_id\"],[\"deployable_id_convert_to_bigint\"]]'")
-> 0.0025s
== 20210525085325 BackfillDeploymentsForBigintConversion: reverted (0.0027s) ==
== 20210525085158 InitializeConversionOfDeploymentsToBigint: reverting ========
-- remove_column(:deployments, "deployable_id_convert_to_bigint")
-> 0.0012s
== 20210525085158 InitializeConversionOfDeploymentsToBigint: reverted (0.0058s)
Screenshots (strongly suggested)
Does this MR meet the acceptance criteria?
Conformity
-
I have included a changelog entry, or it's not needed. (Does this MR need a changelog?) - [-] I have added/updated documentation, or it's not needed. (Is documentation required?)
- [-] I have properly separated EE content from FOSS, or this MR is FOSS only. (Where should EE code go?)
-
I have added information for database reviewers in the MR description, or it's not needed. (Does this MR have database related changes?) -
I have self-reviewed this MR per code review guidelines. -
This MR does not harm performance, or I have asked a reviewer to help assess the performance impact. (Merge request performance guidelines) -
I have followed the style guides.
Availability and Testing
- [-] I have added/updated tests following the Testing Guide, or it's not needed. (Consider all test levels. See the Test Planning Process.)
- [-] I have tested this MR in all supported browsers, or it's not needed.
- [-] I have informed the Infrastructure department of a default or new setting change per definition of done, or it's not needed.
Edited by Mayra Cabrera