From 621804f717a1f4d1adcebda56012841ff651e203 Mon Sep 17 00:00:00 2001 From: Simon Tomlinson Date: Fri, 30 Sep 2022 16:18:30 -0500 Subject: [PATCH 01/10] update comment for v3 --- .../spec/fixtures/migration-testing/expected-comment.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/notifier/spec/fixtures/migration-testing/expected-comment.txt b/notifier/spec/fixtures/migration-testing/expected-comment.txt index 6320dcb1..04c7c397 100644 --- a/notifier/spec/fixtures/migration-testing/expected-comment.txt +++ b/notifier/spec/fixtures/migration-testing/expected-comment.txt @@ -1,5 +1,5 @@ - -### Database migrations + +### Database migrations (on the main database) | | 5 Warnings | | --------- | -------------------- | @@ -235,4 +235,4 @@ dG90YWxfZGF0YWJhc2Vfc2l6ZV9jaGFuZ2UiOi0yNDU3Niwic3VjY2VzcyI6 dHJ1ZX0seyJ2ZXJzaW9uIjoyMDk5MDYwNDIzMzE1Nywid2FsbHRpbWUiOjAu OTQ2NzA0MzA1NzA4NDA4NCwidG90YWxfZGF0YWJhc2Vfc2l6ZV9jaGFuZ2Ui OjAsInN1Y2Nlc3MiOmZhbHNlfV19 - --> \ No newline at end of file + --> -- GitLab From 2ad58ebcf9a265ac065aa42b909582740c50ad8b Mon Sep 17 00:00:00 2001 From: Simon Tomlinson Date: Tue, 4 Oct 2022 09:56:02 -0500 Subject: [PATCH 02/10] wip --- .DS_Store | Bin 0 -> 8196 bytes notifier/.DS_Store | Bin 0 -> 6148 bytes notifier/multi_db_result.rb | 4 + notifier/spec/.DS_Store | Bin 0 -> 6148 bytes notifier/spec/feedback_spec.rb | 4 +- notifier/spec/fixtures/.DS_Store | Bin 0 -> 6148 bytes .../spec/fixtures/migration-testing/.DS_Store | Bin 0 -> 6148 bytes .../{ => v3}/expected-comment.txt | 0 .../batch_1/migration-stats.json | 1 + .../batch_1/migration.log | 5 + .../batch_1/query-details.json | 1 + .../batch_1/transaction-duration.json | 1 + .../batch_2/migration-stats.json | 1 + .../batch_2/migration.log | 5 + .../batch_2/query-details.json | 1 + .../batch_2/transaction-duration.json | 1 + .../batch_3/migration-stats.json | 1 + .../batch_3/migration.log | 5 + .../batch_3/query-details.json | 1 + .../batch_3/transaction-duration.json | 1 + .../batch_4/migration-stats.json | 1 + .../batch_4/migration.log | 5 + .../batch_4/query-details.json | 1 + .../batch_4/transaction-duration.json | 1 + .../batch_5/migration-stats.json | 1 + .../batch_5/migration.log | 5 + .../batch_5/query-details.json | 1 + .../batch_5/transaction-duration.json | 1 + .../full-batched-migration-output.log | 0 .../up/CreateTestTable/migration-stats.json | 1 + .../v4/ci/up/CreateTestTable/migration.log | 39 ++ .../ci/up/CreateTestTable/query-details.json | 1 + .../CreateTestTable/transaction-duration.json | 1 + .../ci/up/DropTestTable/migration-stats.json | 1 + .../v4/ci/up/DropTestTable/migration.log | 20 + .../v4/ci/up/DropTestTable/query-details.json | 1 + .../DropTestTable/transaction-duration.json | 1 + .../migration-stats.json | 1 + .../EnsureGitlabComInMigrations/migration.log | 18 + .../query-details.json | 1 + .../transaction-duration.json | 1 + .../migration-stats.json | 1 + .../migration.log | 20 + .../query-details.json | 1 + .../transaction-duration.json | 1 + .../migration-stats.json | 1 + .../up/MigrationThrowsException/migration.log | 10 + .../query-details.json | 1 + .../transaction-duration.json | 1 + .../migration-stats.json | 1 + .../migration.log | 18 + .../query-details.json | 1 + .../transaction-duration.json | 1 + .../migration-stats.json | 1 + .../migration.log | 20 + .../query-details.json | 1 + .../transaction-duration.json | 1 + .../migration-stats.json | 1 + .../TmpIdxNullMemberNamespaceId/migration.log | 28 ++ .../query-details.json | 1 + .../transaction-duration.json | 1 + .../v4/ci/up/full-migration-output.log | 53 +++ .../migration-testing/v4/ci/up/metadata.json | 1 + .../migration-testing/v4/clone-details.json | 1 + .../migration-testing/v4/expected-comment.txt | 358 ++++++++++++++++++ .../full-batched-migration-output.log | 0 .../up/CreateTestTable/migration-stats.json | 1 + .../v4/main/up/CreateTestTable/migration.log | 39 ++ .../up/CreateTestTable/query-details.json | 1 + .../CreateTestTable/transaction-duration.json | 1 + .../up/DropTestTable/migration-stats.json | 1 + .../v4/main/up/DropTestTable/migration.log | 20 + .../main/up/DropTestTable/query-details.json | 1 + .../DropTestTable/transaction-duration.json | 1 + .../migration-stats.json | 1 + .../EnsureGitlabComInMigrations/migration.log | 18 + .../query-details.json | 1 + .../transaction-duration.json | 1 + .../migration-stats.json | 1 + .../migration.log | 20 + .../query-details.json | 1 + .../transaction-duration.json | 1 + .../migration-stats.json | 1 + .../up/MigrationThrowsException/migration.log | 10 + .../query-details.json | 1 + .../transaction-duration.json | 1 + .../migration-stats.json | 1 + .../migration.log | 18 + .../query-details.json | 1 + .../transaction-duration.json | 1 + .../migration-stats.json | 1 + .../migration.log | 20 + .../query-details.json | 1 + .../transaction-duration.json | 1 + .../migration-stats.json | 1 + .../TmpIdxNullMemberNamespaceId/migration.log | 28 ++ .../query-details.json | 1 + .../transaction-duration.json | 1 + .../v4/main/up/full-migration-output.log | 53 +++ .../v4/main/up/metadata.json | 1 + .../migration-testing/v4/migrations.json | 1 + notifier/spec/result_spec.rb | 5 +- 102 files changed, 911 insertions(+), 4 deletions(-) create mode 100644 .DS_Store create mode 100644 notifier/.DS_Store create mode 100644 notifier/spec/.DS_Store create mode 100644 notifier/spec/fixtures/.DS_Store create mode 100644 notifier/spec/fixtures/migration-testing/.DS_Store rename notifier/spec/fixtures/migration-testing/{ => v3}/expected-comment.txt (100%) create mode 100644 notifier/spec/fixtures/migration-testing/v4/background_migrations/TestBackgroundMigration/batch_1/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/background_migrations/TestBackgroundMigration/batch_1/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/background_migrations/TestBackgroundMigration/batch_1/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/background_migrations/TestBackgroundMigration/batch_1/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/background_migrations/TestBackgroundMigration/batch_2/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/background_migrations/TestBackgroundMigration/batch_2/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/background_migrations/TestBackgroundMigration/batch_2/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/background_migrations/TestBackgroundMigration/batch_2/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/background_migrations/TestBackgroundMigration/batch_3/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/background_migrations/TestBackgroundMigration/batch_3/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/background_migrations/TestBackgroundMigration/batch_3/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/background_migrations/TestBackgroundMigration/batch_3/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/background_migrations/TestBackgroundMigration/batch_4/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/background_migrations/TestBackgroundMigration/batch_4/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/background_migrations/TestBackgroundMigration/batch_4/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/background_migrations/TestBackgroundMigration/batch_4/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/background_migrations/TestBackgroundMigration/batch_5/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/background_migrations/TestBackgroundMigration/batch_5/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/background_migrations/TestBackgroundMigration/batch_5/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/background_migrations/TestBackgroundMigration/batch_5/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/ci/background_migrations/full-batched-migration-output.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/ci/up/CreateTestTable/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/ci/up/CreateTestTable/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/ci/up/CreateTestTable/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/ci/up/CreateTestTable/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/ci/up/DropTestTable/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/ci/up/DropTestTable/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/ci/up/DropTestTable/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/ci/up/DropTestTable/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/ci/up/EnsureGitlabComInMigrations/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/ci/up/EnsureGitlabComInMigrations/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/ci/up/EnsureGitlabComInMigrations/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/ci/up/EnsureGitlabComInMigrations/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/ci/up/MigrationInheritsGitlabDatabaseMigration/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/ci/up/MigrationInheritsGitlabDatabaseMigration/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/ci/up/MigrationInheritsGitlabDatabaseMigration/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/ci/up/MigrationInheritsGitlabDatabaseMigration/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/ci/up/MigrationThrowsException/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/ci/up/MigrationThrowsException/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/ci/up/MigrationThrowsException/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/ci/up/MigrationThrowsException/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/ci/up/QueueTestBackgroundMigration/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/ci/up/QueueTestBackgroundMigration/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/ci/up/QueueTestBackgroundMigration/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/ci/up/QueueTestBackgroundMigration/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/ci/up/RegularMigrationWithFiveSecondQuery/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/ci/up/RegularMigrationWithFiveSecondQuery/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/ci/up/RegularMigrationWithFiveSecondQuery/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/ci/up/RegularMigrationWithFiveSecondQuery/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/ci/up/TmpIdxNullMemberNamespaceId/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/ci/up/TmpIdxNullMemberNamespaceId/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/ci/up/TmpIdxNullMemberNamespaceId/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/ci/up/TmpIdxNullMemberNamespaceId/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/ci/up/full-migration-output.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/ci/up/metadata.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/clone-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/expected-comment.txt create mode 100644 notifier/spec/fixtures/migration-testing/v4/main/background_migrations/full-batched-migration-output.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/main/up/CreateTestTable/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/main/up/CreateTestTable/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/main/up/CreateTestTable/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/main/up/CreateTestTable/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/main/up/DropTestTable/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/main/up/DropTestTable/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/main/up/DropTestTable/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/main/up/DropTestTable/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/main/up/EnsureGitlabComInMigrations/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/main/up/EnsureGitlabComInMigrations/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/main/up/EnsureGitlabComInMigrations/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/main/up/EnsureGitlabComInMigrations/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/main/up/MigrationInheritsGitlabDatabaseMigration/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/main/up/MigrationInheritsGitlabDatabaseMigration/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/main/up/MigrationInheritsGitlabDatabaseMigration/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/main/up/MigrationInheritsGitlabDatabaseMigration/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/main/up/MigrationThrowsException/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/main/up/MigrationThrowsException/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/main/up/MigrationThrowsException/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/main/up/MigrationThrowsException/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/main/up/QueueTestBackgroundMigration/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/main/up/QueueTestBackgroundMigration/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/main/up/QueueTestBackgroundMigration/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/main/up/QueueTestBackgroundMigration/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/main/up/RegularMigrationWithFiveSecondQuery/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/main/up/RegularMigrationWithFiveSecondQuery/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/main/up/RegularMigrationWithFiveSecondQuery/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/main/up/RegularMigrationWithFiveSecondQuery/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/main/up/TmpIdxNullMemberNamespaceId/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/main/up/TmpIdxNullMemberNamespaceId/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/main/up/TmpIdxNullMemberNamespaceId/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/main/up/TmpIdxNullMemberNamespaceId/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/main/up/full-migration-output.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/main/up/metadata.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/migrations.json diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..40e0075fe190f3720b5b3b925754d950971bb00e GIT binary patch literal 8196 zcmZQzU|@7AO)+F(kYHe7;9!8z0^AH(0Z1N%F(jFwA}k>D7#IW?7}6Lr8B!UFlFEw< zpmL+sXb6mkz-S1JhQMeDjE2DA3IRrlb2xC+`w-btax?@+LtsRP0H}OWfVAxy9H4Xq zga%15FfuTJy8w&~44^ImIE)y<{Qw4#97rpO25AM+Agv6HAQspRuvP{}s8&XBHw2_l z0BR0cI|C!wW{@~oI|C!wW(EdEh;{}>sLhPf9ttBwI|Cy`I|C!wcCeA7#ApbNh5%X! zfU*wxNzBYkEdnVC&P+*7N-T;A&&*57FL%l> z%}Xf;>xD{iaB^_Q3rJK~n^+p^D3}10ho}8aknwwV~FCdtln3G(ZlUS1Kn3EHn zS(RE0Qk`6spOX`iUz`atCNiQVwW0(hhanXaRh(Z`;tVz{UO=Fa-o~X=})Vz|+w9M3^ z$i(90)V!3;y!6oW%#@Oh@UqO}%%q&uki5j)R8B!g9nLHK5|UEVGP1G|1qcl=r4gk` znT4g9C6xlo92{Uf6l9fnVp0-IQhoDNK(?fC2yEp9%c#mK$wq@@oQqNuOHxyy8Z>3K zc|wXat5P`x5+Mrpcno+#vNQ8iI0cF!BE~$XvY|PNNvS!U0x1xCEO@MB!^9fKiWsUH zdKqRgtY+B4aFpQ~!&QcR3@;fzGyG&^WMpGxXXIk!W)xwRVpL(&VKiklXS86nWOQQm zXAEErVhm=CVa#C6WXxhLW~^YWWUOYaVQgjWV(ez@W$a^|&N!EG9^(SWg^a5hH!*Hz z+{(C(aX;e;#*>Vv7%wwEVtmZ_l<^tkd&XakzZw59u`-D>Niaz=DKY6V=`!gtnKM~1 zSut5N`7!x3MKC2YWijP5L5K91pfxZcq3gB!3gr9+lxhPYe;)c<#7V8Av0 z4^cHrj)uT!2n@>*U}SL#c5%W}rh)p}p#F3M)cc?o0H{082 literal 0 HcmV?d00001 diff --git a/notifier/.DS_Store b/notifier/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5ddb0f2cda22095ba0bfa20338848041fe62e0e2 GIT binary patch literal 6148 zcmZQzU|@7AO)+F(5MW?n;9!8zj35RBCIAV8Fop~hR0Kpbg3L%NFD^*R$xmWnVAuhb z8|)Ow?JNw%3rD%)-jX&cV*X%@G@%kzXEMl2}q&?37p( z4dR95=jSBB*ojGDnW^RR0wT`&c_oRNd8tJpCBc~~sY!`NG2xkcDf#72`K5U&#bCWq z2@XyU&UgWd>S_~9LmdSZL$g{Pg=$M9104kuW3$>?P7YCJee0n3?3~=Z{4PjdS4fYA^b z4FU8J0F@64(6*xklx~2~ASnh$1_n^`8AP+d^n&{V5H%pJAUTj$5Dn7GzzAZ2<-uAR z7#Sd18NuBU1_nlOmjpzEwKFg>fVDF)GJv%+z#6`c5bX?%5bX@G&I==`M*}h+qMd;e zq8;YEQF=54MneD^0?ZIv0960GGQhJCM0AuK4S~@R7!e`B$l?<0;smNRad;P0*MjQP z1gJcy_J>r*po$u`5x@i)P?Ufw1y%PTtsoj)6*DqGYVy&B04#(?>Cq6Ne+U2o3KU9J literal 0 HcmV?d00001 diff --git a/notifier/multi_db_result.rb b/notifier/multi_db_result.rb index a4daa19f..ac43084e 100644 --- a/notifier/multi_db_result.rb +++ b/notifier/multi_db_result.rb @@ -13,6 +13,10 @@ class MultiDbResult Result.from_directory(path, global_migration_data, clone_details) end + # main is alphabetically after CI and we want it to come first, so reverse the order + # ruby's hash is order-preserving once we sort it + per_db_results = per_db_results.sort.reverse.to_h + MultiDbResult.new(per_db_results) end diff --git a/notifier/spec/.DS_Store b/notifier/spec/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..c7c4560793b6e550a6ba24ce70871f875fcf0cb6 GIT binary patch literal 6148 zcmZQzU|@7AO)+F(5MW?n;9!8z3~dZp0Z1N%F(jFwB8(vOz-E*(6fvYS6sHs?=RoBM zQ6Rk>3~3CR3>6F|3`qKu^7C^*l7tKxl^+d((GVC7fzc2c4S~@RASnc()hh=#NxDWA zkA}c#2#kaf0F@64khVR81C(xn&>$%WMg|6O7l4t0fdv*GjNpC%14s^}6-0xyf@qLd z21XDIYz9~>10z%`Be)v^(g*62fM~FG21c;WAU;?-10&dG1_nlmb_PbM&5Y0<3L`{2 z10zH`10&dWnCnLA(GVC70ayqyLl^>}`rnm-0ayPYqH2^J4S~@R7?vTx$l?<0;smag zvHK5H*MjQP1gM$=P-TpudKn@HQUa>l!PPMnWKdB8sthC!(hj1*)iEOj1GqLHZ4AId MXp|le0s4jj03Ht&$N&HU literal 0 HcmV?d00001 diff --git a/notifier/spec/feedback_spec.rb b/notifier/spec/feedback_spec.rb index 7367205c..526d63dc 100644 --- a/notifier/spec/feedback_spec.rb +++ b/notifier/spec/feedback_spec.rb @@ -6,12 +6,12 @@ RSpec.describe Feedback do # This is a temporary measure to increase our confidence in a change - we can remove # it if it gets tedious and we have smaller unit tests in place describe 'end to end test for rendering feedback comment' do - where(fixture_root: %w[v3]) + where(fixture_root: %w[v3 v4]) with_them do let(:result) { MultiDbResult.from_directory(file_fixture("migration-testing/#{fixture_root}")) } - let(:expected_comment_file) { file_fixture('migration-testing/expected-comment.txt') } + let(:expected_comment_file) { file_fixture("migration-testing/#{fixture_root}/expected-comment.txt") } subject { MultiDbFeedback.new(result).render } diff --git a/notifier/spec/fixtures/.DS_Store b/notifier/spec/fixtures/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..6aba0e6dc72d8dfb241d4846fb855f1e11312c49 GIT binary patch literal 6148 zcmZQzU|@7AO)+F(5MW?n;9!8z3~dZp0Z1N%F(jFwB8(vOz-A;elrUs6D` zBSbp`Bh+R_Xb*)EqMd;eqMd;eY&*<#qx5J9jD`R#1ehTV0Z{$#%D{lD{|`|$N{)uW zXb23;5MX3+33hP;SIXG^2dZm9^=SfB%>k$~Mo_&B5d$d!Rqf#Fmw;X z1=1_bkjs$Ckj_xVfULiSA(f#RY+fEiI)eg(QA%-gPEvk;4#-F*hB5|YWC4)iC>{-g z(GVC7fzc2c4S~@RARGdW5G5Sk5PFmx4S~@R7!3h<2!P551yEmsfq}sRN;g1gkQ4(W z0|Th}4x(9LnjrlE29Ov?D~JYZ1<@d_42&Qa*bJ~%21W*mRz`3)1f&ntB>~Z3?F@`y zn?ZcAb_PbU%?u2T5bX?%5bX?%&>jjSL^}f`L^}f`*mjufM(NQI7!3hf2rxq!0-*Ze zm4N|Q{~w}ilpGC#(GVDxA;8Gu671pxu9UI+4^-EJ>eB=yX+}_;4ABFU2370es+b8f kpeO-T%E-U~(h8CXSH+AB4B(o4v>^Zsp;3A?1n3_E09_Ot!T 0.0000s +-- quote_column_name(:notes) + -> 0.0000s + -> 0.2083s +-- quote_table_name("check_0770ba173a") + -> 0.0001s +-- quote_table_name("check_9cfc473dbc") + -> 0.0000s +-- quote_table_name(:test_tables) + -> 0.0000s +-- execute("ALTER TABLE \"test_tables\"\nADD CONSTRAINT \"check_0770ba173a\" CHECK (char_length(\"title\") <= 128),\nADD CONSTRAINT \"check_9cfc473dbc\" CHECK (char_length(\"notes\") <= 1024)\n") + -> 0.0502s +== 20210602144718 CreateTestTable: migrated (0.4754s) ========================= + +== 20210603233011 RegularMigrationWithFiveSecondQuery: migrating ============== +-- execute("SELECT pg_sleep(5);") + -> 5.0899s +== 20210603233011 RegularMigrationWithFiveSecondQuery: migrated (5.0901s) ===== + +== 20210604232017 DropTestTable: migrating ==================================== +-- drop_table(:test_tables) + -> 0.0904s +== 20210604232017 DropTestTable: migrated (0.0906s) =========================== + +ci: == 20210915152743 MigrationInheritsGitlabDatabaseMigration: migrating ========= +ci: -- execute("SELECT 'up'") +ci: -> 0.0849s +ci: == 20210915152743 MigrationInheritsGitlabDatabaseMigration: migrated (0.0851s) + +ci: == 20220223163519 EnsureGitlabComInMigrations: migrating ====================== +ci: == 20220223163519 EnsureGitlabComInMigrations: migrated (0.0000s) ============= + +ci: == 20220318174439 QueueTestBackgroundMigration: migrating ===================== +ci: == 20220318174439 QueueTestBackgroundMigration: migrated (0.5866s) ============ + +ci: == 20220929081645 TmpIdxNullMemberNamespaceId: migrating ====================== +ci: -- transaction_open?() +ci: -> 0.0000s +ci: -- index_exists?(:members, :member_namespace_id, {:name=>"tmp_index_for_null_member_namespace_id", :where=>"member_namespace_id IS NULL", :algorithm=>:concurrently}) +ci: -> 0.7003s +ci: -- execute("SET statement_timeout TO 0") +ci: -> 0.0418s +ci: -- add_index(:members, :member_namespace_id, {:name=>"tmp_index_for_null_member_namespace_id", :where=>"member_namespace_id IS NULL", :algorithm=>:concurrently}) +ci: -> 110.2664s +ci: -- execute("RESET statement_timeout") +ci: -> 0.0423s +ci: == 20220929081645 TmpIdxNullMemberNamespaceId: migrated (111.2802s) =========== + +== 20990604233157 MigrationThrowsException: migrating ========================= +-- RuntimeError("This throws an exception") diff --git a/notifier/spec/fixtures/migration-testing/v4/ci/up/metadata.json b/notifier/spec/fixtures/migration-testing/v4/ci/up/metadata.json new file mode 100644 index 00000000..23f55cd8 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/ci/up/metadata.json @@ -0,0 +1 @@ +{"database":"ci","version":4} \ No newline at end of file diff --git a/notifier/spec/fixtures/migration-testing/v4/clone-details.json b/notifier/spec/fixtures/migration-testing/v4/clone-details.json new file mode 100644 index 00000000..39d84baa --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/clone-details.json @@ -0,0 +1 @@ +[{"createdAt":"2022-09-30T21:32:10Z","cloneStateTimestamp":"2022-09-30T20:11:48Z","cloneId":"database-testing-1448027-8121647-main","maxIdleMinutes":720,"expectedRemovalTime":"2022-10-01 09:39:17 +0000","projectName":"gitlab-production-tunnel","instanceId":59},{"createdAt":"2022-09-30T21:32:10Z","cloneStateTimestamp":"2022-09-30T20:46:43Z","cloneId":"database-testing-1448027-8121647-ci","maxIdleMinutes":720,"expectedRemovalTime":"2022-10-01 09:39:17 +0000","projectName":"gitlab-production-ci","instanceId":165}] diff --git a/notifier/spec/fixtures/migration-testing/v4/expected-comment.txt b/notifier/spec/fixtures/migration-testing/v4/expected-comment.txt new file mode 100644 index 00000000..7a3ec051 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/expected-comment.txt @@ -0,0 +1,358 @@ + +### Database migrations (on the main database) + +| | 3 Warnings | +| --------- | -------------------- | +| :warning: | 20210602144718 - CreateTestTable had a query that [exceeded timing guidelines](https://docs.gitlab.com/ee/development/query_performance.html#timing-guidelines-for-queries). Run time
should not exceed 100ms, but it was 192.8ms. Please consider possible options to improve the query
performance.
CREATE TABLE "test_tables" ("id" bigserial primary key, "stars" bigint
DEFAULT 0 NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, "title"
text, "notes" text)
/*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:100:in
`block in create_table_with_constraints'*/
| +| :warning: | 20210603233011 - RegularMigrationWithFiveSecondQuery had a query that [exceeded timing
guidelines](https://docs.gitlab.com/ee/development/query_performance.html#timing-guidelines-for-queries). Run time should not exceed 100ms, but it was 5005.1ms. Please consider possible options
to improve the query performance.
SELECT pg_sleep($1)
| +| :warning: | 20990604233157 - MigrationThrowsException did not complete successfully, check the job log
for details | + +Migrations included in this change have been executed on gitlab.com data for testing purposes. For details, please see the [migration testing pipeline](https://gitlab.com/gitlab-org/database-team/gitlab-com-database-testing/-/pipelines/4711) (limited access). + +| Migration | Type | Total runtime | Result | DB size change | +| --------- | ---- | ------------- | ------ | -------------- | +| 20210602144718 - CreateTestTable | Regular | 2.2 s | :warning: | +24.00 KiB | +| 20210603233011 - RegularMigrationWithFiveSecondQuery | Regular | 6.5 s | :warning: | +0.00 B | +| 20210915152743 - MigrationInheritsGitlabDatabaseMigration | Regular | 1.2 s | :white_check_mark: | +0.00 B | +| 20220223163519 - EnsureGitlabComInMigrations | Regular | 1.2 s | :white_check_mark: | +0.00 B | +| 20220318174439 - QueueTestBackgroundMigration | Regular | 1.8 s | :white_check_mark: | +0.00 B | +| 20210604232017 - DropTestTable | Post deploy | 1.3 s | :white_check_mark: | -24.00 KiB | +| 20990604233157 - MigrationThrowsException | Post deploy | 1.1 s | :boom: | +0.00 B | + +
+Runtime Histogram for all migrations + +| Query Runtime | Count | +|---------------|-------| +|0 seconds - 0.01 seconds | 0 | +|0.01 seconds - 0.1 seconds | 3 | +|0.1 seconds - 1 second | 1 | +|1 second - 5 minutes | 1 | +|5 minutes + | 0 | + +
+ + +#### :warning: Migration: 20210602144718 - CreateTestTable + +* Type: Regular +* Duration: 2.2 s +* Database size change: +24.00 KiB + +| Query | Calls | Total Time | Max Time | Mean Time | Rows | +| ----- | ----- | ---------- | -------- | --------- | ---- | +|
CREATE TABLE "test_tables" ("id" bigserial primary key, "stars" bigint DEFAULT 0 NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, "title" text, "notes" text) /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:100:in `block in create_table_with_constraints'*/
| 1 | 192.8 ms | 192.8 ms | 192.8 ms | 0 | +|
ALTER TABLE "test_tables" ADD CONSTRAINT "check_0770ba173a" CHECK (char_length("title") <= 128), ADD CONSTRAINT "check_9cfc473dbc" CHECK (char_length("notes") <= 1024) /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:128:in `block in create_table_with_constraints'*/
| 1 | 6.6 ms | 6.6 ms | 6.6 ms | 0 | +|
SELECT $1::regtype::oid
| 1 | 0.0 ms | 0.0 ms | 0.0 ms | 1 | + +
+Histogram for CreateTestTable + +| Query Runtime | Count | +|---------------|-------| +|0 seconds - 0.01 seconds | 0 | +|0.01 seconds - 0.1 seconds | 2 | +|0.1 seconds - 1 second | 1 | +|1 second - 5 minutes | 0 | +|5 minutes + | 0 | + +
+ +#### :warning: Migration: 20210603233011 - RegularMigrationWithFiveSecondQuery + +* Type: Regular +* Duration: 6.5 s +* Database size change: +0.00 B + +| Query | Calls | Total Time | Max Time | Mean Time | Rows | +| ----- | ----- | ---------- | -------- | --------- | ---- | +|
SELECT pg_sleep($1)
| 1 | 5005.1 ms | 5005.1 ms | 5005.1 ms | 1 | + +
+Histogram for RegularMigrationWithFiveSecondQuery + +| Query Runtime | Count | +|---------------|-------| +|0 seconds - 0.01 seconds | 0 | +|0.01 seconds - 0.1 seconds | 0 | +|0.1 seconds - 1 second | 0 | +|1 second - 5 minutes | 1 | +|5 minutes + | 0 | + +
+ +#### Migration: 20210915152743 - MigrationInheritsGitlabDatabaseMigration + +* Type: Regular +* Duration: 1.2 s +* Database size change: +0.00 B + + +#### Migration: 20220223163519 - EnsureGitlabComInMigrations + +* Type: Regular +* Duration: 1.2 s +* Database size change: +0.00 B + + +#### Migration: 20220318174439 - QueueTestBackgroundMigration + +* Type: Regular +* Duration: 1.8 s +* Database size change: +0.00 B + + +#### Migration: 20210604232017 - DropTestTable + +* Type: Post deploy +* Duration: 1.3 s +* Database size change: -24.00 KiB + +| Query | Calls | Total Time | Max Time | Mean Time | Rows | +| ----- | ----- | ---------- | -------- | --------- | ---- | +|
DROP TABLE "test_tables" /*application:test,db_config_name:main,line:/db/post_migrate/20210604232017_drop_test_table.rb:5:in `change'*/
| 1 | 2.6 ms | 2.6 ms | 2.6 ms | 0 | + +
+Histogram for DropTestTable + +| Query Runtime | Count | +|---------------|-------| +|0 seconds - 0.01 seconds | 0 | +|0.01 seconds - 0.1 seconds | 1 | +|0.1 seconds - 1 second | 0 | +|1 second - 5 minutes | 0 | +|5 minutes + | 0 | + +
+ +#### :boom: Migration: 20990604233157 - MigrationThrowsException + +* Type: Post deploy +* Duration: 1.1 s +* Database size change: +0.00 B + + + +--- + +### Background migrations + + +--- + +
+ Other migrations pending on GitLab.com + + | Migration | Type | Total runtime | Result | DB size change | +| --------- | ---- | ------------- | ------ | -------------- | +| 20220929081645 - TmpIdxNullMemberNamespaceId | Post deploy | 56.3 s | :white_check_mark: | +32.00 KiB | + +
+ +#### Clone Details +| Clone ID | Clone Created At | Clone Data Timestamp | Expected Removal Time | +| -------- | ---------------- | -------------------- | --------------------- | +| [`database-testing-1448027-8121647-main`](https://console.postgres.ai/gitlab/gitlab-production-tunnel/instances/59/clones/database-testing-1448027-8121647-main) | 2022-09-30T21:32:10Z | 2022-09-30T20:11:48Z | 2022-10-01 09:39:17 +0000 | +| [`database-testing-1448027-8121647-ci`](https://console.postgres.ai/gitlab/gitlab-production-ci/instances/165/clones/database-testing-1448027-8121647-ci) | 2022-09-30T21:32:10Z | 2022-09-30T20:46:43Z | 2022-10-01 09:39:17 +0000 | + +#### [Artifacts](https://gitlab.com/gitlab-org/database-team/gitlab-com-database-testing/-/jobs/1354666720/artifacts/browse/migration-testing/) + +--- +Brought to you by [gitlab-org/database-team/gitlab-com-database-testing](https://gitlab.com/gitlab-org/database-team/gitlab-com-database-testing). [Epic](https://gitlab.com/groups/gitlab-org/database-team/-/epics/9) + + +### Database migrations (on the ci database) + +| | 3 Warnings | +| --------- | -------------------- | +| :warning: | 20210602144718 - CreateTestTable had a query that [exceeded timing guidelines](https://docs.gitlab.com/ee/development/query_performance.html#timing-guidelines-for-queries). Run time
should not exceed 100ms, but it was 122.94ms. Please consider possible options to improve the query
performance.
CREATE TABLE "test_tables" ("id" bigserial primary key, "stars" bigint
DEFAULT 0 NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, "title"
text, "notes" text)
/*application:test,db_config_name:ci,line:/lib/gitlab/database/migration_helpers.rb:100:in
`block in create_table_with_constraints'*/
| +| :warning: | 20210603233011 - RegularMigrationWithFiveSecondQuery had a query that [exceeded timing
guidelines](https://docs.gitlab.com/ee/development/query_performance.html#timing-guidelines-for-queries). Run time should not exceed 100ms, but it was 5005.1ms. Please consider possible options
to improve the query performance.
SELECT pg_sleep($1)
| +| :warning: | 20990604233157 - MigrationThrowsException did not complete successfully, check the job log
for details | + +Migrations included in this change have been executed on gitlab.com data for testing purposes. For details, please see the [migration testing pipeline](https://gitlab.com/gitlab-org/database-team/gitlab-com-database-testing/-/pipelines/4711) (limited access). + +| Migration | Type | Total runtime | Result | DB size change | +| --------- | ---- | ------------- | ------ | -------------- | +| 20210602144718 - CreateTestTable | Regular | 1.9 s | :warning: | +24.00 KiB | +| 20210603233011 - RegularMigrationWithFiveSecondQuery | Regular | 6.2 s | :warning: | +0.00 B | +| 20210915152743 - MigrationInheritsGitlabDatabaseMigration | Regular | 1.2 s | :white_check_mark: | +0.00 B | +| 20220223163519 - EnsureGitlabComInMigrations | Regular | 1.2 s | :white_check_mark: | +0.00 B | +| 20220318174439 - QueueTestBackgroundMigration | Regular | 1.7 s | :white_check_mark: | +0.00 B | +| 20210604232017 - DropTestTable | Post deploy | 1.4 s | :white_check_mark: | -24.00 KiB | +| 20990604233157 - MigrationThrowsException | Post deploy | 1.1 s | :boom: | +0.00 B | + +
+Runtime Histogram for all migrations + +| Query Runtime | Count | +|---------------|-------| +|0 seconds - 0.01 seconds | 0 | +|0.01 seconds - 0.1 seconds | 3 | +|0.1 seconds - 1 second | 1 | +|1 second - 5 minutes | 1 | +|5 minutes + | 0 | + +
+ + +#### :warning: Migration: 20210602144718 - CreateTestTable + +* Type: Regular +* Duration: 1.9 s +* Database size change: +24.00 KiB + +| Query | Calls | Total Time | Max Time | Mean Time | Rows | +| ----- | ----- | ---------- | -------- | --------- | ---- | +|
CREATE TABLE "test_tables" ("id" bigserial primary key, "stars" bigint DEFAULT 0 NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, "title" text, "notes" text) /*application:test,db_config_name:ci,line:/lib/gitlab/database/migration_helpers.rb:100:in `block in create_table_with_constraints'*/
| 1 | 122.9 ms | 122.9 ms | 122.9 ms | 0 | +|
ALTER TABLE "test_tables" ADD CONSTRAINT "check_0770ba173a" CHECK (char_length("title") <= 128), ADD CONSTRAINT "check_9cfc473dbc" CHECK (char_length("notes") <= 1024) /*application:test,db_config_name:ci,line:/lib/gitlab/database/migration_helpers.rb:128:in `block in create_table_with_constraints'*/
| 1 | 8.3 ms | 8.3 ms | 8.3 ms | 0 | +|
SELECT $1::regtype::oid
| 1 | 0.0 ms | 0.0 ms | 0.0 ms | 1 | + +
+Histogram for CreateTestTable + +| Query Runtime | Count | +|---------------|-------| +|0 seconds - 0.01 seconds | 0 | +|0.01 seconds - 0.1 seconds | 2 | +|0.1 seconds - 1 second | 1 | +|1 second - 5 minutes | 0 | +|5 minutes + | 0 | + +
+ +#### :warning: Migration: 20210603233011 - RegularMigrationWithFiveSecondQuery + +* Type: Regular +* Duration: 6.2 s +* Database size change: +0.00 B + +| Query | Calls | Total Time | Max Time | Mean Time | Rows | +| ----- | ----- | ---------- | -------- | --------- | ---- | +|
SELECT pg_sleep($1)
| 1 | 5005.1 ms | 5005.1 ms | 5005.1 ms | 1 | + +
+Histogram for RegularMigrationWithFiveSecondQuery + +| Query Runtime | Count | +|---------------|-------| +|0 seconds - 0.01 seconds | 0 | +|0.01 seconds - 0.1 seconds | 0 | +|0.1 seconds - 1 second | 0 | +|1 second - 5 minutes | 1 | +|5 minutes + | 0 | + +
+ +#### Migration: 20210915152743 - MigrationInheritsGitlabDatabaseMigration + +* Type: Regular +* Duration: 1.2 s +* Database size change: +0.00 B + + +#### Migration: 20220223163519 - EnsureGitlabComInMigrations + +* Type: Regular +* Duration: 1.2 s +* Database size change: +0.00 B + + +#### Migration: 20220318174439 - QueueTestBackgroundMigration + +* Type: Regular +* Duration: 1.7 s +* Database size change: +0.00 B + + +#### Migration: 20210604232017 - DropTestTable + +* Type: Post deploy +* Duration: 1.4 s +* Database size change: -24.00 KiB + +| Query | Calls | Total Time | Max Time | Mean Time | Rows | +| ----- | ----- | ---------- | -------- | --------- | ---- | +|
DROP TABLE "test_tables" /*application:test,db_config_name:ci,line:/db/post_migrate/20210604232017_drop_test_table.rb:5:in `change'*/
| 1 | 6.8 ms | 6.8 ms | 6.8 ms | 0 | + +
+Histogram for DropTestTable + +| Query Runtime | Count | +|---------------|-------| +|0 seconds - 0.01 seconds | 0 | +|0.01 seconds - 0.1 seconds | 1 | +|0.1 seconds - 1 second | 0 | +|1 second - 5 minutes | 0 | +|5 minutes + | 0 | + +
+ +#### :boom: Migration: 20990604233157 - MigrationThrowsException + +* Type: Post deploy +* Duration: 1.1 s +* Database size change: +0.00 B + + + +--- + +### Background migrations + + +--- + +
+ Other migrations pending on GitLab.com + + | Migration | Type | Total runtime | Result | DB size change | +| --------- | ---- | ------------- | ------ | -------------- | +| 20220929081645 - TmpIdxNullMemberNamespaceId | Post deploy | 112.4 s | :white_check_mark: | +32.00 KiB | + +
+ +#### Clone Details +| Clone ID | Clone Created At | Clone Data Timestamp | Expected Removal Time | +| -------- | ---------------- | -------------------- | --------------------- | +| [`database-testing-1448027-8121647-main`](https://console.postgres.ai/gitlab/gitlab-production-tunnel/instances/59/clones/database-testing-1448027-8121647-main) | 2022-09-30T21:32:10Z | 2022-09-30T20:11:48Z | 2022-10-01 09:39:17 +0000 | +| [`database-testing-1448027-8121647-ci`](https://console.postgres.ai/gitlab/gitlab-production-ci/instances/165/clones/database-testing-1448027-8121647-ci) | 2022-09-30T21:32:10Z | 2022-09-30T20:46:43Z | 2022-10-01 09:39:17 +0000 | + +#### [Artifacts](https://gitlab.com/gitlab-org/database-team/gitlab-com-database-testing/-/jobs/1354666720/artifacts/browse/migration-testing/) + +--- +Brought to you by [gitlab-org/database-team/gitlab-com-database-testing](https://gitlab.com/gitlab-org/database-team/gitlab-com-database-testing). [Epic](https://gitlab.com/groups/gitlab-org/database-team/-/epics/9) + diff --git a/notifier/spec/fixtures/migration-testing/v4/main/background_migrations/full-batched-migration-output.log b/notifier/spec/fixtures/migration-testing/v4/main/background_migrations/full-batched-migration-output.log new file mode 100644 index 00000000..e69de29b diff --git a/notifier/spec/fixtures/migration-testing/v4/main/up/CreateTestTable/migration-stats.json b/notifier/spec/fixtures/migration-testing/v4/main/up/CreateTestTable/migration-stats.json new file mode 100644 index 00000000..4b4c442c --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/main/up/CreateTestTable/migration-stats.json @@ -0,0 +1 @@ +{"version":20210602144718,"name":"CreateTestTable","walltime":2.1985140219330788,"success":true,"total_database_size_change":24576,"query_statistics":[{"query":"CREATE TABLE \"test_tables\" (\"id\" bigserial primary key, \"stars\" bigint DEFAULT 0 NOT NULL, \"created_at\" timestamp(6) NOT NULL, \"updated_at\" timestamp(6) NOT NULL, \"title\" text, \"notes\" text) /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:100:in `block in create_table_with_constraints'*/","calls":1,"total_time":192.802332,"max_time":192.802332,"mean_time":192.802332,"rows":0},{"query":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","calls":1,"total_time":144.38915,"max_time":144.38915,"mean_time":144.38915,"rows":1},{"query":"ALTER TABLE \"test_tables\"\nADD CONSTRAINT \"check_0770ba173a\" CHECK (char_length(\"title\") \u003c= 128),\nADD CONSTRAINT \"check_9cfc473dbc\" CHECK (char_length(\"notes\") \u003c= 1024)\n /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:128:in `block in create_table_with_constraints'*/","calls":1,"total_time":6.602411,"max_time":6.602411,"mean_time":6.602411,"rows":0},{"query":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas($1)) AND c.relkind IN ($2,$3,$4,$5,$6)","calls":1,"total_time":4.722614,"max_time":4.722614,"mean_time":4.722614,"rows":603},{"query":"INSERT INTO \"schema_migrations\" (\"version\") VALUES ($1) RETURNING \"version\" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/","calls":1,"total_time":3.102035,"max_time":3.102035,"mean_time":3.102035,"rows":1},{"query":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":2.6275999999999997,"max_time":2.6275999999999997,"mean_time":2.6275999999999997,"rows":5385},{"query":"SELECT \"ar_internal_metadata\".* FROM \"ar_internal_metadata\" WHERE \"ar_internal_metadata\".\"key\" = $1 LIMIT $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":1.560201,"max_time":1.560201,"mean_time":1.560201,"rows":1},{"query":"SELECT a.attname, format_type(a.atttypid, a.atttypmod),\n pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod,\n c.collname, col_description(a.attrelid, a.attnum) AS comment\n FROM pg_attribute a\n LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum\n LEFT JOIN pg_type t ON a.atttypid = t.oid\n LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation \u003c\u003e t.typcollation\n WHERE a.attrelid = $1::regclass\n AND a.attnum \u003e $2 AND NOT a.attisdropped\n ORDER BY a.attnum","calls":1,"total_time":0.623014,"max_time":0.623014,"mean_time":0.623014,"rows":4},{"query":"select pg_stat_statements_reset() /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/query_statistics.rb:16:in `before'*/","calls":1,"total_time":0.217699,"max_time":0.217699,"mean_time":0.217699,"rows":1},{"query":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas($1)) AND c.relname = $2 AND c.relkind IN ($3,$4)","calls":3,"total_time":0.182048,"max_time":0.06928899999999999,"mean_time":0.06068266666666666,"rows":3},{"query":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.10199000000000001,"max_time":0.10199000000000001,"mean_time":0.10199000000000001,"rows":10},{"query":"SET LOCAL lock_timeout TO '100ms' /*application:test,db_config_name:main,line:/lib/gitlab/database/with_lock_retries.rb:172:in `execute'*/","calls":1,"total_time":0.041161,"max_time":0.041161,"mean_time":0.041161,"rows":0},{"query":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.04011,"max_time":0.04011,"mean_time":0.04011,"rows":0},{"query":"UPDATE \"ar_internal_metadata\" SET \"value\" = $1, \"updated_at\" = $2 WHERE \"ar_internal_metadata\".\"key\" = $3 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.039198,"max_time":0.039198,"mean_time":0.039198,"rows":1},{"query":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.029721,"max_time":0.029721,"mean_time":0.029721,"rows":0},{"query":"set client_encoding to 'unicode'","calls":1,"total_time":0.028651,"max_time":0.028651,"mean_time":0.028651,"rows":0},{"query":"SELECT $1 FROM pg_proc WHERE proname = $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/schema_helpers.rb:20:in `function_exists?'*/","calls":1,"total_time":0.027299999999999998,"max_time":0.027299999999999998,"mean_time":0.027299999999999998,"rows":1},{"query":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.027209,"max_time":0.027209,"mean_time":0.027209,"rows":0},{"query":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.025874,"max_time":0.025874,"mean_time":0.025874,"rows":0},{"query":"set client_encoding to 'UTF8'","calls":1,"total_time":0.022612,"max_time":0.022612,"mean_time":0.022612,"rows":0},{"query":"SELECT pg_try_advisory_lock($1)","calls":1,"total_time":0.013618,"max_time":0.013618,"mean_time":0.013618,"rows":1},{"query":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.011879,"max_time":0.011879,"mean_time":0.011879,"rows":0},{"query":"SELECT pg_advisory_unlock($1)","calls":1,"total_time":0.010336999999999999,"max_time":0.010336999999999999,"mean_time":0.010336999999999999,"rows":1},{"query":"RESET idle_in_transaction_session_timeout","calls":1,"total_time":0.008307,"max_time":0.008307,"mean_time":0.008307,"rows":0},{"query":"SELECT current_database()","calls":1,"total_time":0.007934,"max_time":0.007934,"mean_time":0.007934,"rows":1},{"query":"SELECT $1::regtype::oid","calls":1,"total_time":0.006556,"max_time":0.006556,"mean_time":0.006556,"rows":1},{"query":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.0064,"max_time":0.0064,"mean_time":0.0064,"rows":0},{"query":"SAVEPOINT active_record_1 /*application:test,db_config_name:main,line:/lib/gitlab/database/with_lock_retries.rb:172:in `execute'*/","calls":1,"total_time":0.003657,"max_time":0.003657,"mean_time":0.003657,"rows":0},{"query":"RESET lock_timeout /*application:test,db_config_name:main,line:/lib/gitlab/database/with_lock_retries.rb:172:in `execute'*/","calls":1,"total_time":0.003546,"max_time":0.003546,"mean_time":0.003546,"rows":0},{"query":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/","calls":2,"total_time":0.003086,"max_time":0.001613,"mean_time":0.001543,"rows":0},{"query":"RELEASE SAVEPOINT active_record_1 /*application:test,db_config_name:main,line:/lib/gitlab/database/with_lock_retries.rb:129:in `run_block_with_lock_timeout'*/","calls":1,"total_time":0.002484,"max_time":0.002484,"mean_time":0.002484,"rows":0},{"query":"BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database/with_lock_retries.rb:172:in `execute'*/","calls":1,"total_time":0.001829,"max_time":0.001829,"mean_time":0.001829,"rows":0},{"query":"BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.00138,"max_time":0.00138,"mean_time":0.00138,"rows":0}]} \ No newline at end of file diff --git a/notifier/spec/fixtures/migration-testing/v4/main/up/CreateTestTable/migration.log b/notifier/spec/fixtures/migration-testing/v4/main/up/CreateTestTable/migration.log new file mode 100644 index 00000000..8fd7bc7a --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/main/up/CreateTestTable/migration.log @@ -0,0 +1,39 @@ +# Logfile created on 2022-09-30 21:33:26 +0000 by logger.rb/v1.4.2 +D, [2022-09-30T21:33:27.313181 #388] DEBUG -- :  (41.5ms) SELECT pg_try_advisory_lock(3005434223539248480) +D, [2022-09-30T21:33:27.314881 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:27.396972 #388] DEBUG -- :  (80.7ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:33:27.398750 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +I, [2022-09-30T21:33:27.440142 #388] INFO -- : Migrating to CreateTestTable (20210602144718) +D, [2022-09-30T21:33:27.543296 #388] DEBUG -- : TRANSACTION (40.9ms) BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database/with_lock_retries.rb:172:in `execute'*/ +D, [2022-09-30T21:33:27.544062 #388] DEBUG -- : ↳ lib/gitlab/database/with_lock_retries.rb:172:in `execute' +D, [2022-09-30T21:33:27.585394 #388] DEBUG -- : TRANSACTION (40.4ms) SAVEPOINT active_record_1 /*application:test,db_config_name:main,line:/lib/gitlab/database/with_lock_retries.rb:172:in `execute'*/ +D, [2022-09-30T21:33:27.587203 #388] DEBUG -- : ↳ lib/gitlab/database/with_lock_retries.rb:172:in `execute' +D, [2022-09-30T21:33:27.630673 #388] DEBUG -- :  (40.9ms) SET LOCAL lock_timeout TO '100ms' /*application:test,db_config_name:main,line:/lib/gitlab/database/with_lock_retries.rb:172:in `execute'*/ +D, [2022-09-30T21:33:27.632070 #388] DEBUG -- : ↳ lib/gitlab/database/with_lock_retries.rb:172:in `execute' +D, [2022-09-30T21:33:27.912726 #388] DEBUG -- :  (233.3ms) CREATE TABLE "test_tables" ("id" bigserial primary key, "stars" bigint DEFAULT 0 NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, "title" text, "notes" text) /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:100:in `block in create_table_with_constraints'*/ +D, [2022-09-30T21:33:27.913438 #388] DEBUG -- : ↳ lib/gitlab/database/migration_helpers.rb:100:in `block in create_table_with_constraints' +D, [2022-09-30T21:33:27.962820 #388] DEBUG -- :  (47.1ms) ALTER TABLE "test_tables" +ADD CONSTRAINT "check_0770ba173a" CHECK (char_length("title") <= 128), +ADD CONSTRAINT "check_9cfc473dbc" CHECK (char_length("notes") <= 1024) + /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:128:in `block in create_table_with_constraints'*/ +D, [2022-09-30T21:33:27.963466 #388] DEBUG -- : ↳ lib/gitlab/database/migration_helpers.rb:128:in `block in create_table_with_constraints' +D, [2022-09-30T21:33:28.006343 #388] DEBUG -- : TRANSACTION (40.5ms) RELEASE SAVEPOINT active_record_1 /*application:test,db_config_name:main,line:/lib/gitlab/database/with_lock_retries.rb:129:in `run_block_with_lock_timeout'*/ +D, [2022-09-30T21:33:28.008327 #388] DEBUG -- : ↳ lib/gitlab/database/with_lock_retries.rb:129:in `run_block_with_lock_timeout' +D, [2022-09-30T21:33:28.049723 #388] DEBUG -- :  (40.4ms) RESET idle_in_transaction_session_timeout; RESET lock_timeout /*application:test,db_config_name:main,line:/lib/gitlab/database/with_lock_retries.rb:172:in `execute'*/ +D, [2022-09-30T21:33:28.051243 #388] DEBUG -- : ↳ lib/gitlab/database/with_lock_retries.rb:172:in `execute' +D, [2022-09-30T21:33:28.187460 #388] DEBUG -- : ActiveRecord::SchemaMigration Create (43.9ms) INSERT INTO "schema_migrations" ("version") VALUES ('20210602144718') RETURNING "version" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/ +D, [2022-09-30T21:33:28.189180 #388] DEBUG -- : ↳ lib/gitlab/database.rb:332:in `block in transaction' +D, [2022-09-30T21:33:28.231981 #388] DEBUG -- : TRANSACTION (40.6ms) COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/ +D, [2022-09-30T21:33:28.232535 #388] DEBUG -- : ↳ lib/gitlab/database.rb:365:in `commit' +D, [2022-09-30T21:33:28.339397 #388] DEBUG -- : ActiveRecord::InternalMetadata Load (58.7ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:33:28.341099 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:28.391020 #388] DEBUG -- : TRANSACTION (40.3ms) BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:33:28.394382 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:28.435568 #388] DEBUG -- : ActiveRecord::InternalMetadata Update (40.6ms) UPDATE "ar_internal_metadata" SET "value" = 'test', "updated_at" = '2022-09-30 21:33:28.347998' WHERE "ar_internal_metadata"."key" = 'environment' /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:33:28.437731 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:28.479154 #388] DEBUG -- : TRANSACTION (40.2ms) COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/ +D, [2022-09-30T21:33:28.480508 #388] DEBUG -- : ↳ lib/gitlab/database.rb:365:in `commit' +D, [2022-09-30T21:33:28.521763 #388] DEBUG -- :  (40.6ms) SELECT pg_advisory_unlock(3005434223539248480) +D, [2022-09-30T21:33:28.522288 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:28.749267 #388] DEBUG -- :  (184.8ms) select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/ +D, [2022-09-30T21:33:28.749832 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size' diff --git a/notifier/spec/fixtures/migration-testing/v4/main/up/CreateTestTable/query-details.json b/notifier/spec/fixtures/migration-testing/v4/main/up/CreateTestTable/query-details.json new file mode 100644 index 00000000..fd1190b8 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/main/up/CreateTestTable/query-details.json @@ -0,0 +1 @@ +[{"start_time":"2022-09-30T21:33:26.569798+00:00","end_time":"2022-09-30T21:33:26.611015+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'schema_migrations' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:33:26.614202+00:00","end_time":"2022-09-30T21:33:26.655326+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'ar_internal_metadata' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:33:26.655671+00:00","end_time":"2022-09-30T21:33:26.696212+00:00","sql":"SELECT current_database()","binds":[]},{"start_time":"2022-09-30T21:33:26.940851+00:00","end_time":"2022-09-30T21:33:26.981337+00:00","sql":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:26.981925+00:00","end_time":"2022-09-30T21:33:27.022367+00:00","sql":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:27.023505+00:00","end_time":"2022-09-30T21:33:27.064007+00:00","sql":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:27.064600+00:00","end_time":"2022-09-30T21:33:27.105137+00:00","sql":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:27.105712+00:00","end_time":"2022-09-30T21:33:27.146251+00:00","sql":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:27.147048+00:00","end_time":"2022-09-30T21:33:27.189245+00:00","sql":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ('int2', 'int4', 'int8', 'oid', 'float4', 'float8', 'numeric', 'bool', 'timestamp', 'timestamptz')\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:27.190643+00:00","end_time":"2022-09-30T21:33:27.231095+00:00","sql":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:27.271501+00:00","end_time":"2022-09-30T21:33:27.315087+00:00","sql":"SELECT pg_try_advisory_lock(3005434223539248480)","binds":[]},{"start_time":"2022-09-30T21:33:27.316125+00:00","end_time":"2022-09-30T21:33:27.398958+00:00","sql":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:27.501188+00:00","end_time":"2022-09-30T21:33:27.544335+00:00","sql":"BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database/with_lock_retries.rb:172:in `execute'*/","binds":[]},{"start_time":"2022-09-30T21:33:27.544872+00:00","end_time":"2022-09-30T21:33:27.589412+00:00","sql":"SAVEPOINT active_record_1 /*application:test,db_config_name:main,line:/lib/gitlab/database/with_lock_retries.rb:172:in `execute'*/","binds":[]},{"start_time":"2022-09-30T21:33:27.589618+00:00","end_time":"2022-09-30T21:33:27.632266+00:00","sql":"SET LOCAL lock_timeout TO '100ms' /*application:test,db_config_name:main,line:/lib/gitlab/database/with_lock_retries.rb:172:in `execute'*/","binds":[]},{"start_time":"2022-09-30T21:33:27.635269+00:00","end_time":"2022-09-30T21:33:27.677390+00:00","sql":"SELECT 'bigint'::regtype::oid","binds":[]},{"start_time":"2022-09-30T21:33:27.679313+00:00","end_time":"2022-09-30T21:33:27.913601+00:00","sql":"CREATE TABLE \"test_tables\" (\"id\" bigserial primary key, \"stars\" bigint DEFAULT 0 NOT NULL, \"created_at\" timestamp(6) NOT NULL, \"updated_at\" timestamp(6) NOT NULL, \"title\" text, \"notes\" text) /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:100:in `block in create_table_with_constraints'*/","binds":[]},{"start_time":"2022-09-30T21:33:27.915616+00:00","end_time":"2022-09-30T21:33:27.963618+00:00","sql":"ALTER TABLE \"test_tables\"\nADD CONSTRAINT \"check_0770ba173a\" CHECK (char_length(\"title\") \u003c= 128),\nADD CONSTRAINT \"check_9cfc473dbc\" CHECK (char_length(\"notes\") \u003c= 1024)\n /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:128:in `block in create_table_with_constraints'*/","binds":[]},{"start_time":"2022-09-30T21:33:27.965730+00:00","end_time":"2022-09-30T21:33:28.008592+00:00","sql":"RELEASE SAVEPOINT active_record_1 /*application:test,db_config_name:main,line:/lib/gitlab/database/with_lock_retries.rb:129:in `run_block_with_lock_timeout'*/","binds":[]},{"start_time":"2022-09-30T21:33:28.009198+00:00","end_time":"2022-09-30T21:33:28.051454+00:00","sql":"RESET idle_in_transaction_session_timeout; RESET lock_timeout /*application:test,db_config_name:main,line:/lib/gitlab/database/with_lock_retries.rb:172:in `execute'*/","binds":[]},{"start_time":"2022-09-30T21:33:28.052111+00:00","end_time":"2022-09-30T21:33:28.136100+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relkind IN ('r','v','m','p','f')","binds":[]},{"start_time":"2022-09-30T21:33:28.143505+00:00","end_time":"2022-09-30T21:33:28.189449+00:00","sql":"INSERT INTO \"schema_migrations\" (\"version\") VALUES ('20210602144718') RETURNING \"version\" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/","binds":[]},{"start_time":"2022-09-30T21:33:28.191270+00:00","end_time":"2022-09-30T21:33:28.232681+00:00","sql":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/","binds":[]},{"start_time":"2022-09-30T21:33:28.234329+00:00","end_time":"2022-09-30T21:33:28.277800+00:00","sql":"SELECT a.attname, format_type(a.atttypid, a.atttypmod),\n pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod,\n c.collname, col_description(a.attrelid, a.attnum) AS comment\n FROM pg_attribute a\n LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum\n LEFT JOIN pg_type t ON a.atttypid = t.oid\n LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation \u003c\u003e t.typcollation\n WHERE a.attrelid = '\"ar_internal_metadata\"'::regclass\n AND a.attnum \u003e 0 AND NOT a.attisdropped\n ORDER BY a.attnum\n","binds":[]},{"start_time":"2022-09-30T21:33:28.280603+00:00","end_time":"2022-09-30T21:33:28.341310+00:00","sql":"SELECT \"ar_internal_metadata\".* FROM \"ar_internal_metadata\" WHERE \"ar_internal_metadata\".\"key\" = 'environment' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:28.350649+00:00","end_time":"2022-09-30T21:33:28.394709+00:00","sql":"BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:28.394863+00:00","end_time":"2022-09-30T21:33:28.437933+00:00","sql":"UPDATE \"ar_internal_metadata\" SET \"value\" = 'test', \"updated_at\" = '2022-09-30 21:33:28.347998' WHERE \"ar_internal_metadata\".\"key\" = 'environment' /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:28.438804+00:00","end_time":"2022-09-30T21:33:28.480709+00:00","sql":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/","binds":[]},{"start_time":"2022-09-30T21:33:28.481004+00:00","end_time":"2022-09-30T21:33:28.522503+00:00","sql":"SELECT pg_advisory_unlock(3005434223539248480)","binds":[]},{"start_time":"2022-09-30T21:33:28.564323+00:00","end_time":"2022-09-30T21:33:28.749991+00:00","sql":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","binds":[]}] diff --git a/notifier/spec/fixtures/migration-testing/v4/main/up/CreateTestTable/transaction-duration.json b/notifier/spec/fixtures/migration-testing/v4/main/up/CreateTestTable/transaction-duration.json new file mode 100644 index 00000000..5f696328 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/main/up/CreateTestTable/transaction-duration.json @@ -0,0 +1 @@ +[{"start_time":"2022-09-30T21:33:27.480981+00:00","end_time":"2022-09-30T21:33:28.232892+00:00","transaction_type":"real_transaction"}] diff --git a/notifier/spec/fixtures/migration-testing/v4/main/up/DropTestTable/migration-stats.json b/notifier/spec/fixtures/migration-testing/v4/main/up/DropTestTable/migration-stats.json new file mode 100644 index 00000000..ef4176f8 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/main/up/DropTestTable/migration-stats.json @@ -0,0 +1 @@ +{"version":20210604232017,"name":"DropTestTable","walltime":1.2941431254148483,"success":true,"total_database_size_change":-24576,"query_statistics":[{"query":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","calls":1,"total_time":135.13333799999998,"max_time":135.13333799999998,"mean_time":135.13333799999998,"rows":1},{"query":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":2.655891,"max_time":2.655891,"mean_time":2.655891,"rows":5387},{"query":"DROP TABLE \"test_tables\" /*application:test,db_config_name:main,line:/db/post_migrate/20210604232017_drop_test_table.rb:5:in `change'*/","calls":1,"total_time":2.609645,"max_time":2.609645,"mean_time":2.609645,"rows":0},{"query":"select pg_stat_statements_reset() /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/query_statistics.rb:16:in `before'*/","calls":1,"total_time":0.156087,"max_time":0.156087,"mean_time":0.156087,"rows":1},{"query":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas($1)) AND c.relname = $2 AND c.relkind IN ($3,$4)","calls":3,"total_time":0.10787,"max_time":0.048748999999999994,"mean_time":0.035956666666666665,"rows":3},{"query":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.08729300000000001,"max_time":0.08729300000000001,"mean_time":0.08729300000000001,"rows":10},{"query":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.044639,"max_time":0.044639,"mean_time":0.044639,"rows":0},{"query":"INSERT INTO \"schema_migrations\" (\"version\") VALUES ($1) RETURNING \"version\" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/","calls":1,"total_time":0.038481,"max_time":0.038481,"mean_time":0.038481,"rows":1},{"query":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.037511,"max_time":0.037511,"mean_time":0.037511,"rows":0},{"query":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.030513,"max_time":0.030513,"mean_time":0.030513,"rows":0},{"query":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.029864,"max_time":0.029864,"mean_time":0.029864,"rows":0},{"query":"set client_encoding to 'UTF8'","calls":1,"total_time":0.02569,"max_time":0.02569,"mean_time":0.02569,"rows":0},{"query":"SELECT \"ar_internal_metadata\".* FROM \"ar_internal_metadata\" WHERE \"ar_internal_metadata\".\"key\" = $1 LIMIT $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.023552,"max_time":0.023552,"mean_time":0.023552,"rows":1},{"query":"SELECT $1 FROM pg_proc WHERE proname = $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/schema_helpers.rb:20:in `function_exists?'*/","calls":1,"total_time":0.022626999999999998,"max_time":0.022626999999999998,"mean_time":0.022626999999999998,"rows":1},{"query":"set client_encoding to 'unicode'","calls":1,"total_time":0.017816,"max_time":0.017816,"mean_time":0.017816,"rows":0},{"query":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.01414,"max_time":0.01414,"mean_time":0.01414,"rows":0},{"query":"SELECT pg_try_advisory_lock($1)","calls":1,"total_time":0.010635,"max_time":0.010635,"mean_time":0.010635,"rows":1},{"query":"SELECT pg_advisory_unlock($1)","calls":1,"total_time":0.010166000000000001,"max_time":0.010166000000000001,"mean_time":0.010166000000000001,"rows":1},{"query":"SELECT current_database()","calls":1,"total_time":0.0070149999999999995,"max_time":0.0070149999999999995,"mean_time":0.0070149999999999995,"rows":1},{"query":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.005459,"max_time":0.005459,"mean_time":0.005459,"rows":0},{"query":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/","calls":1,"total_time":0.001526,"max_time":0.001526,"mean_time":0.001526,"rows":0},{"query":"BEGIN /*application:test,db_config_name:main,line:/db/post_migrate/20210604232017_drop_test_table.rb:5:in `change'*/","calls":1,"total_time":0.001408,"max_time":0.001408,"mean_time":0.001408,"rows":0}]} \ No newline at end of file diff --git a/notifier/spec/fixtures/migration-testing/v4/main/up/DropTestTable/migration.log b/notifier/spec/fixtures/migration-testing/v4/main/up/DropTestTable/migration.log new file mode 100644 index 00000000..1818ce7a --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/main/up/DropTestTable/migration.log @@ -0,0 +1,20 @@ +# Logfile created on 2022-09-30 21:33:36 +0000 by logger.rb/v1.4.2 +D, [2022-09-30T21:33:37.133642 #388] DEBUG -- :  (40.5ms) SELECT pg_try_advisory_lock(3005434223539248480) +D, [2022-09-30T21:33:37.134169 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:37.297491 #388] DEBUG -- :  (162.0ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:33:37.298162 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +I, [2022-09-30T21:33:37.307739 #388] INFO -- : Migrating to DropTestTable (20210604232017) +D, [2022-09-30T21:33:37.350562 #388] DEBUG -- : TRANSACTION (40.3ms) BEGIN /*application:test,db_config_name:main,line:/db/post_migrate/20210604232017_drop_test_table.rb:5:in `change'*/ +D, [2022-09-30T21:33:37.351529 #388] DEBUG -- : ↳ lib/gitlab/database.rb:332:in `block in transaction' +D, [2022-09-30T21:33:37.395072 #388] DEBUG -- :  (43.0ms) DROP TABLE "test_tables" /*application:test,db_config_name:main,line:/db/post_migrate/20210604232017_drop_test_table.rb:5:in `change'*/ +D, [2022-09-30T21:33:37.395895 #388] DEBUG -- : ↳ lib/gitlab/database.rb:332:in `block in transaction' +D, [2022-09-30T21:33:37.438662 #388] DEBUG -- : ActiveRecord::SchemaMigration Create (40.6ms) INSERT INTO "schema_migrations" ("version") VALUES ('20210604232017') RETURNING "version" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/ +D, [2022-09-30T21:33:37.439755 #388] DEBUG -- : ↳ lib/gitlab/database.rb:332:in `block in transaction' +D, [2022-09-30T21:33:37.486375 #388] DEBUG -- : TRANSACTION (45.5ms) COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/ +D, [2022-09-30T21:33:37.487004 #388] DEBUG -- : ↳ lib/gitlab/database.rb:365:in `commit' +D, [2022-09-30T21:33:37.529503 #388] DEBUG -- : ActiveRecord::InternalMetadata Load (40.7ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:33:37.530287 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:37.572301 #388] DEBUG -- :  (40.5ms) SELECT pg_advisory_unlock(3005434223539248480) +D, [2022-09-30T21:33:37.572787 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:37.790113 #388] DEBUG -- :  (175.6ms) select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/ +D, [2022-09-30T21:33:37.790655 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size' diff --git a/notifier/spec/fixtures/migration-testing/v4/main/up/DropTestTable/query-details.json b/notifier/spec/fixtures/migration-testing/v4/main/up/DropTestTable/query-details.json new file mode 100644 index 00000000..c44c9ac2 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/main/up/DropTestTable/query-details.json @@ -0,0 +1 @@ +[{"start_time":"2022-09-30T21:33:36.389846+00:00","end_time":"2022-09-30T21:33:36.431180+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'schema_migrations' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:33:36.431558+00:00","end_time":"2022-09-30T21:33:36.472435+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'ar_internal_metadata' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:33:36.472769+00:00","end_time":"2022-09-30T21:33:36.513296+00:00","sql":"SELECT current_database()","binds":[]},{"start_time":"2022-09-30T21:33:36.762549+00:00","end_time":"2022-09-30T21:33:36.803176+00:00","sql":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:36.803772+00:00","end_time":"2022-09-30T21:33:36.844349+00:00","sql":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:36.844916+00:00","end_time":"2022-09-30T21:33:36.885519+00:00","sql":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:36.886110+00:00","end_time":"2022-09-30T21:33:36.926833+00:00","sql":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:36.927419+00:00","end_time":"2022-09-30T21:33:36.967974+00:00","sql":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:36.968719+00:00","end_time":"2022-09-30T21:33:37.011229+00:00","sql":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ('int2', 'int4', 'int8', 'oid', 'float4', 'float8', 'numeric', 'bool', 'timestamp', 'timestamptz')\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:37.011992+00:00","end_time":"2022-09-30T21:33:37.052561+00:00","sql":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:37.093029+00:00","end_time":"2022-09-30T21:33:37.134310+00:00","sql":"SELECT pg_try_advisory_lock(3005434223539248480)","binds":[]},{"start_time":"2022-09-30T21:33:37.135322+00:00","end_time":"2022-09-30T21:33:37.298323+00:00","sql":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:37.310075+00:00","end_time":"2022-09-30T21:33:37.351783+00:00","sql":"BEGIN /*application:test,db_config_name:main,line:/db/post_migrate/20210604232017_drop_test_table.rb:5:in `change'*/","binds":[]},{"start_time":"2022-09-30T21:33:37.351921+00:00","end_time":"2022-09-30T21:33:37.396057+00:00","sql":"DROP TABLE \"test_tables\" /*application:test,db_config_name:main,line:/db/post_migrate/20210604232017_drop_test_table.rb:5:in `change'*/","binds":[]},{"start_time":"2022-09-30T21:33:37.397918+00:00","end_time":"2022-09-30T21:33:37.439925+00:00","sql":"INSERT INTO \"schema_migrations\" (\"version\") VALUES ('20210604232017') RETURNING \"version\" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/","binds":[]},{"start_time":"2022-09-30T21:33:37.440724+00:00","end_time":"2022-09-30T21:33:37.487201+00:00","sql":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/","binds":[]},{"start_time":"2022-09-30T21:33:37.488692+00:00","end_time":"2022-09-30T21:33:37.530477+00:00","sql":"SELECT \"ar_internal_metadata\".* FROM \"ar_internal_metadata\" WHERE \"ar_internal_metadata\".\"key\" = 'environment' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:37.531685+00:00","end_time":"2022-09-30T21:33:37.572922+00:00","sql":"SELECT pg_advisory_unlock(3005434223539248480)","binds":[]},{"start_time":"2022-09-30T21:33:37.614374+00:00","end_time":"2022-09-30T21:33:37.790813+00:00","sql":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","binds":[]}] diff --git a/notifier/spec/fixtures/migration-testing/v4/main/up/DropTestTable/transaction-duration.json b/notifier/spec/fixtures/migration-testing/v4/main/up/DropTestTable/transaction-duration.json new file mode 100644 index 00000000..982c7219 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/main/up/DropTestTable/transaction-duration.json @@ -0,0 +1 @@ +[{"start_time":"2022-09-30T21:33:37.308835+00:00","end_time":"2022-09-30T21:33:37.487357+00:00","transaction_type":"real_transaction"}] diff --git a/notifier/spec/fixtures/migration-testing/v4/main/up/EnsureGitlabComInMigrations/migration-stats.json b/notifier/spec/fixtures/migration-testing/v4/main/up/EnsureGitlabComInMigrations/migration-stats.json new file mode 100644 index 00000000..158b7d7b --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/main/up/EnsureGitlabComInMigrations/migration-stats.json @@ -0,0 +1 @@ +{"version":20220223163519,"name":"EnsureGitlabComInMigrations","walltime":1.184450276196003,"success":true,"total_database_size_change":0,"query_statistics":[{"query":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","calls":1,"total_time":155.052597,"max_time":155.052597,"mean_time":155.052597,"rows":1},{"query":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":2.992765,"max_time":2.992765,"mean_time":2.992765,"rows":5389},{"query":"select pg_stat_statements_reset() /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/query_statistics.rb:16:in `before'*/","calls":1,"total_time":0.20756,"max_time":0.20756,"mean_time":0.20756,"rows":1},{"query":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas($1)) AND c.relname = $2 AND c.relkind IN ($3,$4)","calls":3,"total_time":0.105835,"max_time":0.049020999999999995,"mean_time":0.035278333333333335,"rows":3},{"query":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.07036200000000001,"max_time":0.07036200000000001,"mean_time":0.07036200000000001,"rows":10},{"query":"INSERT INTO \"schema_migrations\" (\"version\") VALUES ($1) RETURNING \"version\" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/","calls":1,"total_time":0.054597,"max_time":0.054597,"mean_time":0.054597,"rows":1},{"query":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.046151,"max_time":0.046151,"mean_time":0.046151,"rows":0},{"query":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.03294,"max_time":0.03294,"mean_time":0.03294,"rows":0},{"query":"SELECT \"ar_internal_metadata\".* FROM \"ar_internal_metadata\" WHERE \"ar_internal_metadata\".\"key\" = $1 LIMIT $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.030738,"max_time":0.030738,"mean_time":0.030738,"rows":1},{"query":"SELECT $1 FROM pg_proc WHERE proname = $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/schema_helpers.rb:20:in `function_exists?'*/","calls":1,"total_time":0.026957,"max_time":0.026957,"mean_time":0.026957,"rows":1},{"query":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.026259,"max_time":0.026259,"mean_time":0.026259,"rows":0},{"query":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.026191,"max_time":0.026191,"mean_time":0.026191,"rows":0},{"query":"set client_encoding to 'UTF8'","calls":1,"total_time":0.025904,"max_time":0.025904,"mean_time":0.025904,"rows":0},{"query":"set client_encoding to 'unicode'","calls":1,"total_time":0.016731,"max_time":0.016731,"mean_time":0.016731,"rows":0},{"query":"SELECT pg_advisory_unlock($1)","calls":1,"total_time":0.012501,"max_time":0.012501,"mean_time":0.012501,"rows":1},{"query":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.011461,"max_time":0.011461,"mean_time":0.011461,"rows":0},{"query":"SELECT pg_try_advisory_lock($1)","calls":1,"total_time":0.010361,"max_time":0.010361,"mean_time":0.010361,"rows":1},{"query":"SELECT current_database()","calls":1,"total_time":0.007498,"max_time":0.007498,"mean_time":0.007498,"rows":1},{"query":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.005163,"max_time":0.005163,"mean_time":0.005163,"rows":0},{"query":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/","calls":1,"total_time":0.002956,"max_time":0.002956,"mean_time":0.002956,"rows":0},{"query":"BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/","calls":1,"total_time":0.001802,"max_time":0.001802,"mean_time":0.001802,"rows":0}]} \ No newline at end of file diff --git a/notifier/spec/fixtures/migration-testing/v4/main/up/EnsureGitlabComInMigrations/migration.log b/notifier/spec/fixtures/migration-testing/v4/main/up/EnsureGitlabComInMigrations/migration.log new file mode 100644 index 00000000..6cd94e96 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/main/up/EnsureGitlabComInMigrations/migration.log @@ -0,0 +1,18 @@ +# Logfile created on 2022-09-30 21:33:40 +0000 by logger.rb/v1.4.2 +D, [2022-09-30T21:33:40.870297 #388] DEBUG -- :  (40.8ms) SELECT pg_try_advisory_lock(3005434223539248480) +D, [2022-09-30T21:33:40.870901 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:40.952304 #388] DEBUG -- :  (80.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:33:40.953022 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +I, [2022-09-30T21:33:40.966950 #388] INFO -- : Migrating to EnsureGitlabComInMigrations (20220223163519) +D, [2022-09-30T21:33:41.011542 #388] DEBUG -- : TRANSACTION (40.9ms) BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/ +D, [2022-09-30T21:33:41.012868 #388] DEBUG -- : ↳ lib/gitlab/database.rb:332:in `block in transaction' +D, [2022-09-30T21:33:41.056610 #388] DEBUG -- : ActiveRecord::SchemaMigration Create (43.2ms) INSERT INTO "schema_migrations" ("version") VALUES ('20220223163519') RETURNING "version" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/ +D, [2022-09-30T21:33:41.057684 #388] DEBUG -- : ↳ lib/gitlab/database.rb:332:in `block in transaction' +D, [2022-09-30T21:33:41.100139 #388] DEBUG -- : TRANSACTION (41.1ms) COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/ +D, [2022-09-30T21:33:41.100815 #388] DEBUG -- : ↳ lib/gitlab/database.rb:365:in `commit' +D, [2022-09-30T21:33:41.143652 #388] DEBUG -- : ActiveRecord::InternalMetadata Load (41.0ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:33:41.144486 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:41.189489 #388] DEBUG -- :  (43.4ms) SELECT pg_advisory_unlock(3005434223539248480) +D, [2022-09-30T21:33:41.190042 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:41.427729 #388] DEBUG -- :  (195.8ms) select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/ +D, [2022-09-30T21:33:41.428305 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size' diff --git a/notifier/spec/fixtures/migration-testing/v4/main/up/EnsureGitlabComInMigrations/query-details.json b/notifier/spec/fixtures/migration-testing/v4/main/up/EnsureGitlabComInMigrations/query-details.json new file mode 100644 index 00000000..46253513 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/main/up/EnsureGitlabComInMigrations/query-details.json @@ -0,0 +1 @@ +[{"start_time":"2022-09-30T21:33:40.127611+00:00","end_time":"2022-09-30T21:33:40.169060+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'schema_migrations' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:33:40.169410+00:00","end_time":"2022-09-30T21:33:40.210572+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'ar_internal_metadata' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:33:40.210912+00:00","end_time":"2022-09-30T21:33:40.251540+00:00","sql":"SELECT current_database()","binds":[]},{"start_time":"2022-09-30T21:33:40.497469+00:00","end_time":"2022-09-30T21:33:40.538095+00:00","sql":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:40.538745+00:00","end_time":"2022-09-30T21:33:40.579217+00:00","sql":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:40.579854+00:00","end_time":"2022-09-30T21:33:40.620457+00:00","sql":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:40.621097+00:00","end_time":"2022-09-30T21:33:40.663250+00:00","sql":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:40.663919+00:00","end_time":"2022-09-30T21:33:40.704487+00:00","sql":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:40.705217+00:00","end_time":"2022-09-30T21:33:40.747425+00:00","sql":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ('int2', 'int4', 'int8', 'oid', 'float4', 'float8', 'numeric', 'bool', 'timestamp', 'timestamptz')\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:40.748246+00:00","end_time":"2022-09-30T21:33:40.788898+00:00","sql":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:40.829414+00:00","end_time":"2022-09-30T21:33:40.871093+00:00","sql":"SELECT pg_try_advisory_lock(3005434223539248480)","binds":[]},{"start_time":"2022-09-30T21:33:40.872123+00:00","end_time":"2022-09-30T21:33:40.953181+00:00","sql":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:40.970531+00:00","end_time":"2022-09-30T21:33:41.013118+00:00","sql":"BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/","binds":[]},{"start_time":"2022-09-30T21:33:41.013292+00:00","end_time":"2022-09-30T21:33:41.058025+00:00","sql":"INSERT INTO \"schema_migrations\" (\"version\") VALUES ('20220223163519') RETURNING \"version\" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/","binds":[]},{"start_time":"2022-09-30T21:33:41.058960+00:00","end_time":"2022-09-30T21:33:41.100976+00:00","sql":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/","binds":[]},{"start_time":"2022-09-30T21:33:41.102574+00:00","end_time":"2022-09-30T21:33:41.144649+00:00","sql":"SELECT \"ar_internal_metadata\".* FROM \"ar_internal_metadata\" WHERE \"ar_internal_metadata\".\"key\" = 'environment' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:41.145906+00:00","end_time":"2022-09-30T21:33:41.190186+00:00","sql":"SELECT pg_advisory_unlock(3005434223539248480)","binds":[]},{"start_time":"2022-09-30T21:33:41.231868+00:00","end_time":"2022-09-30T21:33:41.428489+00:00","sql":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","binds":[]}] diff --git a/notifier/spec/fixtures/migration-testing/v4/main/up/EnsureGitlabComInMigrations/transaction-duration.json b/notifier/spec/fixtures/migration-testing/v4/main/up/EnsureGitlabComInMigrations/transaction-duration.json new file mode 100644 index 00000000..8ecc8336 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/main/up/EnsureGitlabComInMigrations/transaction-duration.json @@ -0,0 +1 @@ +[{"start_time":"2022-09-30T21:33:40.968087+00:00","end_time":"2022-09-30T21:33:41.101133+00:00","transaction_type":"real_transaction"}] diff --git a/notifier/spec/fixtures/migration-testing/v4/main/up/MigrationInheritsGitlabDatabaseMigration/migration-stats.json b/notifier/spec/fixtures/migration-testing/v4/main/up/MigrationInheritsGitlabDatabaseMigration/migration-stats.json new file mode 100644 index 00000000..406a144f --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/main/up/MigrationInheritsGitlabDatabaseMigration/migration-stats.json @@ -0,0 +1 @@ +{"version":20210915152743,"name":"MigrationInheritsGitlabDatabaseMigration","walltime":1.2187191620469093,"success":true,"total_database_size_change":0,"query_statistics":[{"query":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","calls":1,"total_time":123.01689,"max_time":123.01689,"mean_time":123.01689,"rows":1},{"query":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":2.666218,"max_time":2.666218,"mean_time":2.666218,"rows":5388},{"query":"select pg_stat_statements_reset() /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/query_statistics.rb:16:in `before'*/","calls":1,"total_time":0.15341000000000002,"max_time":0.15341000000000002,"mean_time":0.15341000000000002,"rows":1},{"query":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas($1)) AND c.relname = $2 AND c.relkind IN ($3,$4)","calls":3,"total_time":0.107736,"max_time":0.053634999999999995,"mean_time":0.035912,"rows":3},{"query":"INSERT INTO \"schema_migrations\" (\"version\") VALUES ($1) RETURNING \"version\" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/","calls":1,"total_time":0.07854799999999999,"max_time":0.07854799999999999,"mean_time":0.07854799999999999,"rows":1},{"query":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.07421599999999999,"max_time":0.07421599999999999,"mean_time":0.07421599999999999,"rows":10},{"query":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.038481,"max_time":0.038481,"mean_time":0.038481,"rows":0},{"query":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.028806,"max_time":0.028806,"mean_time":0.028806,"rows":0},{"query":"set client_encoding to 'UTF8'","calls":1,"total_time":0.025956,"max_time":0.025956,"mean_time":0.025956,"rows":0},{"query":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.024753,"max_time":0.024753,"mean_time":0.024753,"rows":0},{"query":"SELECT \"ar_internal_metadata\".* FROM \"ar_internal_metadata\" WHERE \"ar_internal_metadata\".\"key\" = $1 LIMIT $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.024306,"max_time":0.024306,"mean_time":0.024306,"rows":1},{"query":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.023458,"max_time":0.023458,"mean_time":0.023458,"rows":0},{"query":"SELECT $1 FROM pg_proc WHERE proname = $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/schema_helpers.rb:20:in `function_exists?'*/","calls":1,"total_time":0.023139,"max_time":0.023139,"mean_time":0.023139,"rows":1},{"query":"set client_encoding to 'unicode'","calls":1,"total_time":0.016771,"max_time":0.016771,"mean_time":0.016771,"rows":0},{"query":"SELECT pg_try_advisory_lock($1)","calls":1,"total_time":0.015452,"max_time":0.015452,"mean_time":0.015452,"rows":1},{"query":"SELECT pg_advisory_unlock($1)","calls":1,"total_time":0.011427,"max_time":0.011427,"mean_time":0.011427,"rows":1},{"query":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.010046,"max_time":0.010046,"mean_time":0.010046,"rows":0},{"query":"SELECT $1 /*application:test,db_config_name:main,line:/db/migrate/20210915152743_migration_inherits_gitlab_database_migration.rb:5:in `up'*/","calls":1,"total_time":0.009079,"max_time":0.009079,"mean_time":0.009079,"rows":1},{"query":"SELECT current_database()","calls":1,"total_time":0.006421,"max_time":0.006421,"mean_time":0.006421,"rows":1},{"query":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.006216,"max_time":0.006216,"mean_time":0.006216,"rows":0},{"query":"BEGIN /*application:test,db_config_name:main,line:/db/migrate/20210915152743_migration_inherits_gitlab_database_migration.rb:5:in `up'*/","calls":1,"total_time":0.00161,"max_time":0.00161,"mean_time":0.00161,"rows":0},{"query":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/","calls":1,"total_time":0.001508,"max_time":0.001508,"mean_time":0.001508,"rows":0}]} \ No newline at end of file diff --git a/notifier/spec/fixtures/migration-testing/v4/main/up/MigrationInheritsGitlabDatabaseMigration/migration.log b/notifier/spec/fixtures/migration-testing/v4/main/up/MigrationInheritsGitlabDatabaseMigration/migration.log new file mode 100644 index 00000000..df716b71 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/main/up/MigrationInheritsGitlabDatabaseMigration/migration.log @@ -0,0 +1,20 @@ +# Logfile created on 2022-09-30 21:33:38 +0000 by logger.rb/v1.4.2 +D, [2022-09-30T21:33:39.030478 #388] DEBUG -- :  (40.9ms) SELECT pg_try_advisory_lock(3005434223539248480) +D, [2022-09-30T21:33:39.031028 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:39.112687 #388] DEBUG -- :  (80.3ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:33:39.113490 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +I, [2022-09-30T21:33:39.125341 #388] INFO -- : Migrating to MigrationInheritsGitlabDatabaseMigration (20210915152743) +D, [2022-09-30T21:33:39.174910 #388] DEBUG -- : TRANSACTION (40.7ms) BEGIN /*application:test,db_config_name:main,line:/db/migrate/20210915152743_migration_inherits_gitlab_database_migration.rb:5:in `up'*/ +D, [2022-09-30T21:33:39.175950 #388] DEBUG -- : ↳ lib/gitlab/database.rb:332:in `block in transaction' +D, [2022-09-30T21:33:39.217544 #388] DEBUG -- :  (41.1ms) SELECT 'up' /*application:test,db_config_name:main,line:/db/migrate/20210915152743_migration_inherits_gitlab_database_migration.rb:5:in `up'*/ +D, [2022-09-30T21:33:39.218366 #388] DEBUG -- : ↳ lib/gitlab/database.rb:332:in `block in transaction' +D, [2022-09-30T21:33:39.261873 #388] DEBUG -- : ActiveRecord::SchemaMigration Create (41.1ms) INSERT INTO "schema_migrations" ("version") VALUES ('20210915152743') RETURNING "version" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/ +D, [2022-09-30T21:33:39.263015 #388] DEBUG -- : ↳ lib/gitlab/database.rb:332:in `block in transaction' +D, [2022-09-30T21:33:39.304639 #388] DEBUG -- : TRANSACTION (40.5ms) COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/ +D, [2022-09-30T21:33:39.305256 #388] DEBUG -- : ↳ lib/gitlab/database.rb:365:in `commit' +D, [2022-09-30T21:33:39.347750 #388] DEBUG -- : ActiveRecord::InternalMetadata Load (40.7ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:33:39.348559 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:39.393771 #388] DEBUG -- :  (41.0ms) SELECT pg_advisory_unlock(3005434223539248480) +D, [2022-09-30T21:33:39.394301 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:39.599450 #388] DEBUG -- :  (163.5ms) select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/ +D, [2022-09-30T21:33:39.599987 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size' diff --git a/notifier/spec/fixtures/migration-testing/v4/main/up/MigrationInheritsGitlabDatabaseMigration/query-details.json b/notifier/spec/fixtures/migration-testing/v4/main/up/MigrationInheritsGitlabDatabaseMigration/query-details.json new file mode 100644 index 00000000..c947df65 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/main/up/MigrationInheritsGitlabDatabaseMigration/query-details.json @@ -0,0 +1 @@ +[{"start_time":"2022-09-30T21:33:38.287981+00:00","end_time":"2022-09-30T21:33:38.329271+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'schema_migrations' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:33:38.329644+00:00","end_time":"2022-09-30T21:33:38.370576+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'ar_internal_metadata' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:33:38.370890+00:00","end_time":"2022-09-30T21:33:38.411767+00:00","sql":"SELECT current_database()","binds":[]},{"start_time":"2022-09-30T21:33:38.657320+00:00","end_time":"2022-09-30T21:33:38.698247+00:00","sql":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:38.698973+00:00","end_time":"2022-09-30T21:33:38.739655+00:00","sql":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:38.740260+00:00","end_time":"2022-09-30T21:33:38.780800+00:00","sql":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:38.781469+00:00","end_time":"2022-09-30T21:33:38.822152+00:00","sql":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:38.822892+00:00","end_time":"2022-09-30T21:33:38.863565+00:00","sql":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:38.864551+00:00","end_time":"2022-09-30T21:33:38.907019+00:00","sql":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ('int2', 'int4', 'int8', 'oid', 'float4', 'float8', 'numeric', 'bool', 'timestamp', 'timestamptz')\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:38.907825+00:00","end_time":"2022-09-30T21:33:38.948882+00:00","sql":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:38.989504+00:00","end_time":"2022-09-30T21:33:39.031177+00:00","sql":"SELECT pg_try_advisory_lock(3005434223539248480)","binds":[]},{"start_time":"2022-09-30T21:33:39.032260+00:00","end_time":"2022-09-30T21:33:39.113651+00:00","sql":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:39.134121+00:00","end_time":"2022-09-30T21:33:39.176208+00:00","sql":"BEGIN /*application:test,db_config_name:main,line:/db/migrate/20210915152743_migration_inherits_gitlab_database_migration.rb:5:in `up'*/","binds":[]},{"start_time":"2022-09-30T21:33:39.176349+00:00","end_time":"2022-09-30T21:33:39.218602+00:00","sql":"SELECT 'up' /*application:test,db_config_name:main,line:/db/migrate/20210915152743_migration_inherits_gitlab_database_migration.rb:5:in `up'*/","binds":[]},{"start_time":"2022-09-30T21:33:39.220670+00:00","end_time":"2022-09-30T21:33:39.263189+00:00","sql":"INSERT INTO \"schema_migrations\" (\"version\") VALUES ('20210915152743') RETURNING \"version\" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/","binds":[]},{"start_time":"2022-09-30T21:33:39.264043+00:00","end_time":"2022-09-30T21:33:39.305410+00:00","sql":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/","binds":[]},{"start_time":"2022-09-30T21:33:39.306924+00:00","end_time":"2022-09-30T21:33:39.351358+00:00","sql":"SELECT \"ar_internal_metadata\".* FROM \"ar_internal_metadata\" WHERE \"ar_internal_metadata\".\"key\" = 'environment' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:39.352717+00:00","end_time":"2022-09-30T21:33:39.394486+00:00","sql":"SELECT pg_advisory_unlock(3005434223539248480)","binds":[]},{"start_time":"2022-09-30T21:33:39.435851+00:00","end_time":"2022-09-30T21:33:39.600137+00:00","sql":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","binds":[]}] diff --git a/notifier/spec/fixtures/migration-testing/v4/main/up/MigrationInheritsGitlabDatabaseMigration/transaction-duration.json b/notifier/spec/fixtures/migration-testing/v4/main/up/MigrationInheritsGitlabDatabaseMigration/transaction-duration.json new file mode 100644 index 00000000..3e4d1644 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/main/up/MigrationInheritsGitlabDatabaseMigration/transaction-duration.json @@ -0,0 +1 @@ +[{"start_time":"2022-09-30T21:33:39.132866+00:00","end_time":"2022-09-30T21:33:39.305601+00:00","transaction_type":"real_transaction"}] diff --git a/notifier/spec/fixtures/migration-testing/v4/main/up/MigrationThrowsException/migration-stats.json b/notifier/spec/fixtures/migration-testing/v4/main/up/MigrationThrowsException/migration-stats.json new file mode 100644 index 00000000..f52cebd1 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/main/up/MigrationThrowsException/migration-stats.json @@ -0,0 +1 @@ +{"version":20990604233157,"name":"MigrationThrowsException","walltime":1.0609245002269745,"success":false,"total_database_size_change":0,"query_statistics":[{"query":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","calls":1,"total_time":145.039503,"max_time":145.039503,"mean_time":145.039503,"rows":1},{"query":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":4.334219,"max_time":4.334219,"mean_time":4.334219,"rows":5392},{"query":"select pg_stat_statements_reset() /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/query_statistics.rb:16:in `before'*/","calls":1,"total_time":0.180108,"max_time":0.180108,"mean_time":0.180108,"rows":1},{"query":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas($1)) AND c.relname = $2 AND c.relkind IN ($3,$4)","calls":3,"total_time":0.106629,"max_time":0.04214,"mean_time":0.035543,"rows":3},{"query":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.07478900000000001,"max_time":0.07478900000000001,"mean_time":0.07478900000000001,"rows":10},{"query":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.041753,"max_time":0.041753,"mean_time":0.041753,"rows":0},{"query":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.041544,"max_time":0.041544,"mean_time":0.041544,"rows":0},{"query":"set client_encoding to 'UTF8'","calls":1,"total_time":0.03073,"max_time":0.03073,"mean_time":0.03073,"rows":0},{"query":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.028737,"max_time":0.028737,"mean_time":0.028737,"rows":0},{"query":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.027912,"max_time":0.027912,"mean_time":0.027912,"rows":0},{"query":"SELECT $1 FROM pg_proc WHERE proname = $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/schema_helpers.rb:20:in `function_exists?'*/","calls":1,"total_time":0.023018,"max_time":0.023018,"mean_time":0.023018,"rows":1},{"query":"set client_encoding to 'unicode'","calls":1,"total_time":0.022843,"max_time":0.022843,"mean_time":0.022843,"rows":0},{"query":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.017006,"max_time":0.017006,"mean_time":0.017006,"rows":0},{"query":"SELECT pg_try_advisory_lock($1)","calls":1,"total_time":0.014478,"max_time":0.014478,"mean_time":0.014478,"rows":1},{"query":"SELECT pg_advisory_unlock($1)","calls":1,"total_time":0.014085,"max_time":0.014085,"mean_time":0.014085,"rows":1},{"query":"SELECT current_database()","calls":1,"total_time":0.008478000000000001,"max_time":0.008478000000000001,"mean_time":0.008478000000000001,"rows":1},{"query":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.005855,"max_time":0.005855,"mean_time":0.005855,"rows":0}]} \ No newline at end of file diff --git a/notifier/spec/fixtures/migration-testing/v4/main/up/MigrationThrowsException/migration.log b/notifier/spec/fixtures/migration-testing/v4/main/up/MigrationThrowsException/migration.log new file mode 100644 index 00000000..5f5433c7 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/main/up/MigrationThrowsException/migration.log @@ -0,0 +1,10 @@ +# Logfile created on 2022-09-30 21:34:41 +0000 by logger.rb/v1.4.2 +D, [2022-09-30T21:34:42.061550 #388] DEBUG -- :  (40.6ms) SELECT pg_try_advisory_lock(3005434223539248480) +D, [2022-09-30T21:34:42.062129 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:34:42.193620 #388] DEBUG -- :  (130.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:34:42.194350 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +I, [2022-09-30T21:34:42.207338 #388] INFO -- : Migrating to MigrationThrowsException (20990604233157) +D, [2022-09-30T21:34:42.261305 #388] DEBUG -- :  (40.9ms) SELECT pg_advisory_unlock(3005434223539248480) +D, [2022-09-30T21:34:42.261874 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:34:42.489167 #388] DEBUG -- :  (185.5ms) select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/ +D, [2022-09-30T21:34:42.489743 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size' diff --git a/notifier/spec/fixtures/migration-testing/v4/main/up/MigrationThrowsException/query-details.json b/notifier/spec/fixtures/migration-testing/v4/main/up/MigrationThrowsException/query-details.json new file mode 100644 index 00000000..c4a5c54b --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/main/up/MigrationThrowsException/query-details.json @@ -0,0 +1 @@ +[{"start_time":"2022-09-30T21:34:41.320219+00:00","end_time":"2022-09-30T21:34:41.361726+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'schema_migrations' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:34:41.362114+00:00","end_time":"2022-09-30T21:34:41.403093+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'ar_internal_metadata' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:34:41.403382+00:00","end_time":"2022-09-30T21:34:41.444043+00:00","sql":"SELECT current_database()","binds":[]},{"start_time":"2022-09-30T21:34:41.689959+00:00","end_time":"2022-09-30T21:34:41.730873+00:00","sql":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:34:41.731509+00:00","end_time":"2022-09-30T21:34:41.772077+00:00","sql":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:34:41.772700+00:00","end_time":"2022-09-30T21:34:41.813254+00:00","sql":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:34:41.813878+00:00","end_time":"2022-09-30T21:34:41.854587+00:00","sql":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:34:41.855225+00:00","end_time":"2022-09-30T21:34:41.895870+00:00","sql":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:34:41.896591+00:00","end_time":"2022-09-30T21:34:41.938744+00:00","sql":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ('int2', 'int4', 'int8', 'oid', 'float4', 'float8', 'numeric', 'bool', 'timestamp', 'timestamptz')\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:34:41.939522+00:00","end_time":"2022-09-30T21:34:41.980202+00:00","sql":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:34:42.020869+00:00","end_time":"2022-09-30T21:34:42.062276+00:00","sql":"SELECT pg_try_advisory_lock(3005434223539248480)","binds":[]},{"start_time":"2022-09-30T21:34:42.063345+00:00","end_time":"2022-09-30T21:34:42.194552+00:00","sql":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:34:42.220293+00:00","end_time":"2022-09-30T21:34:42.262053+00:00","sql":"SELECT pg_advisory_unlock(3005434223539248480)","binds":[]},{"start_time":"2022-09-30T21:34:42.303545+00:00","end_time":"2022-09-30T21:34:42.489898+00:00","sql":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","binds":[]}] diff --git a/notifier/spec/fixtures/migration-testing/v4/main/up/MigrationThrowsException/transaction-duration.json b/notifier/spec/fixtures/migration-testing/v4/main/up/MigrationThrowsException/transaction-duration.json new file mode 100644 index 00000000..65da4470 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/main/up/MigrationThrowsException/transaction-duration.json @@ -0,0 +1 @@ +[{"start_time":"2022-09-30T21:34:42.208442+00:00","end_time":"2022-09-30T21:34:42.219880+00:00","transaction_type":"real_transaction"}] diff --git a/notifier/spec/fixtures/migration-testing/v4/main/up/QueueTestBackgroundMigration/migration-stats.json b/notifier/spec/fixtures/migration-testing/v4/main/up/QueueTestBackgroundMigration/migration-stats.json new file mode 100644 index 00000000..22e5c018 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/main/up/QueueTestBackgroundMigration/migration-stats.json @@ -0,0 +1 @@ +{"version":20220318174439,"name":"QueueTestBackgroundMigration","walltime":1.8168415874242783,"success":true,"total_database_size_change":0,"query_statistics":[{"query":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","calls":1,"total_time":134.664105,"max_time":134.664105,"mean_time":134.664105,"rows":1},{"query":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":2.591349,"max_time":2.591349,"mean_time":2.591349,"rows":5390},{"query":"select pg_stat_statements_reset() /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/query_statistics.rb:16:in `before'*/","calls":1,"total_time":0.16301400000000002,"max_time":0.16301400000000002,"mean_time":0.16301400000000002,"rows":1},{"query":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas($1)) AND c.relname = $2 AND c.relkind IN ($3,$4)","calls":3,"total_time":0.120894,"max_time":0.047056,"mean_time":0.040298,"rows":3},{"query":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.082227,"max_time":0.082227,"mean_time":0.082227,"rows":10},{"query":"INSERT INTO \"schema_migrations\" (\"version\") VALUES ($1) RETURNING \"version\" /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction'*/","calls":1,"total_time":0.055818,"max_time":0.055818,"mean_time":0.055818,"rows":1},{"query":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.041372,"max_time":0.041372,"mean_time":0.041372,"rows":0},{"query":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.033194,"max_time":0.033194,"mean_time":0.033194,"rows":0},{"query":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.032334,"max_time":0.032334,"mean_time":0.032334,"rows":0},{"query":"set client_encoding to 'UTF8'","calls":1,"total_time":0.031837,"max_time":0.031837,"mean_time":0.031837,"rows":0},{"query":"SELECT \"ar_internal_metadata\".* FROM \"ar_internal_metadata\" WHERE \"ar_internal_metadata\".\"key\" = $1 LIMIT $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.030087,"max_time":0.030087,"mean_time":0.030087,"rows":1},{"query":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.029062,"max_time":0.029062,"mean_time":0.029062,"rows":0},{"query":"SELECT $1 FROM pg_proc WHERE proname = $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/schema_helpers.rb:20:in `function_exists?'*/","calls":1,"total_time":0.023251,"max_time":0.023251,"mean_time":0.023251,"rows":1},{"query":"set client_encoding to 'unicode'","calls":1,"total_time":0.022774,"max_time":0.022774,"mean_time":0.022774,"rows":0},{"query":"SELECT pg_try_advisory_lock($1)","calls":1,"total_time":0.015193,"max_time":0.015193,"mean_time":0.015193,"rows":1},{"query":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.014817,"max_time":0.014817,"mean_time":0.014817,"rows":0},{"query":"SELECT pg_advisory_unlock($1)","calls":1,"total_time":0.011682,"max_time":0.011682,"mean_time":0.011682,"rows":1},{"query":"SELECT current_database()","calls":1,"total_time":0.009544,"max_time":0.009544,"mean_time":0.009544,"rows":1},{"query":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.00637,"max_time":0.00637,"mean_time":0.00637,"rows":0},{"query":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/","calls":1,"total_time":0.002102,"max_time":0.002102,"mean_time":0.002102,"rows":0},{"query":"BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction'*/","calls":1,"total_time":0.001646,"max_time":0.001646,"mean_time":0.001646,"rows":0}]} \ No newline at end of file diff --git a/notifier/spec/fixtures/migration-testing/v4/main/up/QueueTestBackgroundMigration/migration.log b/notifier/spec/fixtures/migration-testing/v4/main/up/QueueTestBackgroundMigration/migration.log new file mode 100644 index 00000000..e0e18b86 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/main/up/QueueTestBackgroundMigration/migration.log @@ -0,0 +1,18 @@ +# Logfile created on 2022-09-30 21:33:41 +0000 by logger.rb/v1.4.2 +D, [2022-09-30T21:33:42.739724 #388] DEBUG -- :  (40.6ms) SELECT pg_try_advisory_lock(3005434223539248480) +D, [2022-09-30T21:33:42.740329 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:42.822205 #388] DEBUG -- :  (80.3ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:33:42.822982 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +I, [2022-09-30T21:33:42.834211 #388] INFO -- : Migrating to QueueTestBackgroundMigration (20220318174439) +D, [2022-09-30T21:33:43.483827 #388] DEBUG -- : TRANSACTION (40.4ms) BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction'*/ +D, [2022-09-30T21:33:43.484987 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction' +D, [2022-09-30T21:33:43.526181 #388] DEBUG -- : ActiveRecord::SchemaMigration Create (40.7ms) INSERT INTO "schema_migrations" ("version") VALUES ('20220318174439') RETURNING "version" /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction'*/ +D, [2022-09-30T21:33:43.527314 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction' +D, [2022-09-30T21:33:43.568896 #388] DEBUG -- : TRANSACTION (40.6ms) COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/ +D, [2022-09-30T21:33:43.569503 #388] DEBUG -- : ↳ lib/gitlab/database.rb:365:in `commit' +D, [2022-09-30T21:33:43.612498 #388] DEBUG -- : ActiveRecord::InternalMetadata Load (41.2ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:33:43.613250 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:43.655917 #388] DEBUG -- :  (40.8ms) SELECT pg_advisory_unlock(3005434223539248480) +D, [2022-09-30T21:33:43.656414 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:43.873372 #388] DEBUG -- :  (175.2ms) select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/ +D, [2022-09-30T21:33:43.873911 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size' diff --git a/notifier/spec/fixtures/migration-testing/v4/main/up/QueueTestBackgroundMigration/query-details.json b/notifier/spec/fixtures/migration-testing/v4/main/up/QueueTestBackgroundMigration/query-details.json new file mode 100644 index 00000000..d5fdba7a --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/main/up/QueueTestBackgroundMigration/query-details.json @@ -0,0 +1 @@ +[{"start_time":"2022-09-30T21:33:41.995774+00:00","end_time":"2022-09-30T21:33:42.037593+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'schema_migrations' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:33:42.037973+00:00","end_time":"2022-09-30T21:33:42.079105+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'ar_internal_metadata' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:33:42.079408+00:00","end_time":"2022-09-30T21:33:42.121662+00:00","sql":"SELECT current_database()","binds":[]},{"start_time":"2022-09-30T21:33:42.368032+00:00","end_time":"2022-09-30T21:33:42.408583+00:00","sql":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:42.409164+00:00","end_time":"2022-09-30T21:33:42.449861+00:00","sql":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:42.450478+00:00","end_time":"2022-09-30T21:33:42.491209+00:00","sql":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:42.491842+00:00","end_time":"2022-09-30T21:33:42.532383+00:00","sql":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:42.533037+00:00","end_time":"2022-09-30T21:33:42.573569+00:00","sql":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:42.574288+00:00","end_time":"2022-09-30T21:33:42.616693+00:00","sql":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ('int2', 'int4', 'int8', 'oid', 'float4', 'float8', 'numeric', 'bool', 'timestamp', 'timestamptz')\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:42.617503+00:00","end_time":"2022-09-30T21:33:42.658506+00:00","sql":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:42.699088+00:00","end_time":"2022-09-30T21:33:42.740508+00:00","sql":"SELECT pg_try_advisory_lock(3005434223539248480)","binds":[]},{"start_time":"2022-09-30T21:33:42.741563+00:00","end_time":"2022-09-30T21:33:42.823171+00:00","sql":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:43.088566+00:00","end_time":"2022-09-30T21:33:43.129074+00:00","sql":"SET client_min_messages TO 'warning' /*application:test,correlation_id:a923cb21bd993638806139f1a08d6de1,endpoint_id:QueueTestBackgroundMigration,db_config_name:unknown,line:/app/models/concerns/transactions.rb:13:in `inside_transaction?'*/","binds":[]},{"start_time":"2022-09-30T21:33:43.129779+00:00","end_time":"2022-09-30T21:33:43.170247+00:00","sql":"SET standard_conforming_strings = on /*application:test,correlation_id:a923cb21bd993638806139f1a08d6de1,endpoint_id:QueueTestBackgroundMigration,db_config_name:unknown,line:/app/models/concerns/transactions.rb:13:in `inside_transaction?'*/","binds":[]},{"start_time":"2022-09-30T21:33:43.171009+00:00","end_time":"2022-09-30T21:33:43.211366+00:00","sql":"SET intervalstyle = iso_8601 /*application:test,correlation_id:a923cb21bd993638806139f1a08d6de1,endpoint_id:QueueTestBackgroundMigration,db_config_name:unknown,line:/app/models/concerns/transactions.rb:13:in `inside_transaction?'*/","binds":[]},{"start_time":"2022-09-30T21:33:43.212185+00:00","end_time":"2022-09-30T21:33:43.252775+00:00","sql":"SET SESSION statement_timeout TO '120s' /*application:test,correlation_id:a923cb21bd993638806139f1a08d6de1,endpoint_id:QueueTestBackgroundMigration,db_config_name:unknown,line:/app/models/concerns/transactions.rb:13:in `inside_transaction?'*/","binds":[]},{"start_time":"2022-09-30T21:33:43.253545+00:00","end_time":"2022-09-30T21:33:43.294145+00:00","sql":"SET SESSION timezone TO 'UTC' /*application:test,correlation_id:a923cb21bd993638806139f1a08d6de1,endpoint_id:QueueTestBackgroundMigration,db_config_name:unknown,line:/app/models/concerns/transactions.rb:13:in `inside_transaction?'*/","binds":[]},{"start_time":"2022-09-30T21:33:43.295040+00:00","end_time":"2022-09-30T21:33:43.336867+00:00","sql":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ('int2', 'int4', 'int8', 'oid', 'float4', 'float8', 'numeric', 'bool', 'timestamp', 'timestamptz')\n /*application:test,correlation_id:a923cb21bd993638806139f1a08d6de1,endpoint_id:QueueTestBackgroundMigration,db_config_name:unknown,line:/app/models/concerns/transactions.rb:13:in `inside_transaction?'*/","binds":[]},{"start_time":"2022-09-30T21:33:43.337773+00:00","end_time":"2022-09-30T21:33:43.378434+00:00","sql":"SHOW TIME ZONE /*application:test,correlation_id:a923cb21bd993638806139f1a08d6de1,endpoint_id:QueueTestBackgroundMigration,db_config_name:unknown,line:/app/models/concerns/transactions.rb:13:in `inside_transaction?'*/","binds":[]},{"start_time":"2022-09-30T21:33:43.443290+00:00","end_time":"2022-09-30T21:33:43.485233+00:00","sql":"BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction'*/","binds":[]},{"start_time":"2022-09-30T21:33:43.485394+00:00","end_time":"2022-09-30T21:33:43.527513+00:00","sql":"INSERT INTO \"schema_migrations\" (\"version\") VALUES ('20220318174439') RETURNING \"version\" /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction'*/","binds":[]},{"start_time":"2022-09-30T21:33:43.528240+00:00","end_time":"2022-09-30T21:33:43.569661+00:00","sql":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/","binds":[]},{"start_time":"2022-09-30T21:33:43.571156+00:00","end_time":"2022-09-30T21:33:43.613403+00:00","sql":"SELECT \"ar_internal_metadata\".* FROM \"ar_internal_metadata\" WHERE \"ar_internal_metadata\".\"key\" = 'environment' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:43.615029+00:00","end_time":"2022-09-30T21:33:43.656574+00:00","sql":"SELECT pg_advisory_unlock(3005434223539248480)","binds":[]},{"start_time":"2022-09-30T21:33:43.698099+00:00","end_time":"2022-09-30T21:33:43.874064+00:00","sql":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","binds":[]}] diff --git a/notifier/spec/fixtures/migration-testing/v4/main/up/QueueTestBackgroundMigration/transaction-duration.json b/notifier/spec/fixtures/migration-testing/v4/main/up/QueueTestBackgroundMigration/transaction-duration.json new file mode 100644 index 00000000..fe51488c --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/main/up/QueueTestBackgroundMigration/transaction-duration.json @@ -0,0 +1 @@ +[] diff --git a/notifier/spec/fixtures/migration-testing/v4/main/up/RegularMigrationWithFiveSecondQuery/migration-stats.json b/notifier/spec/fixtures/migration-testing/v4/main/up/RegularMigrationWithFiveSecondQuery/migration-stats.json new file mode 100644 index 00000000..70631043 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/main/up/RegularMigrationWithFiveSecondQuery/migration-stats.json @@ -0,0 +1 @@ +{"version":20210603233011,"name":"RegularMigrationWithFiveSecondQuery","walltime":6.5386748388409615,"success":true,"total_database_size_change":0,"query_statistics":[{"query":"SELECT pg_sleep($1)","calls":1,"total_time":5005.107169999999,"max_time":5005.107169999999,"mean_time":5005.107169999999,"rows":1},{"query":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","calls":1,"total_time":119.49098099999999,"max_time":119.49098099999999,"mean_time":119.49098099999999,"rows":1},{"query":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":2.689177,"max_time":2.689177,"mean_time":2.689177,"rows":5386},{"query":"select pg_stat_statements_reset() /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/query_statistics.rb:16:in `before'*/","calls":1,"total_time":0.145792,"max_time":0.145792,"mean_time":0.145792,"rows":1},{"query":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas($1)) AND c.relname = $2 AND c.relkind IN ($3,$4)","calls":3,"total_time":0.101314,"max_time":0.037744,"mean_time":0.033771333333333334,"rows":3},{"query":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.069828,"max_time":0.069828,"mean_time":0.069828,"rows":10},{"query":"INSERT INTO \"schema_migrations\" (\"version\") VALUES ($1) RETURNING \"version\" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/","calls":1,"total_time":0.06289700000000001,"max_time":0.06289700000000001,"mean_time":0.06289700000000001,"rows":1},{"query":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.037246,"max_time":0.037246,"mean_time":0.037246,"rows":0},{"query":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.035568,"max_time":0.035568,"mean_time":0.035568,"rows":0},{"query":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.028693,"max_time":0.028693,"mean_time":0.028693,"rows":0},{"query":"set client_encoding to 'UTF8'","calls":1,"total_time":0.028005,"max_time":0.028005,"mean_time":0.028005,"rows":0},{"query":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.025585,"max_time":0.025585,"mean_time":0.025585,"rows":0},{"query":"SELECT $1 FROM pg_proc WHERE proname = $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/schema_helpers.rb:20:in `function_exists?'*/","calls":1,"total_time":0.023356000000000002,"max_time":0.023356000000000002,"mean_time":0.023356000000000002,"rows":1},{"query":"SELECT \"ar_internal_metadata\".* FROM \"ar_internal_metadata\" WHERE \"ar_internal_metadata\".\"key\" = $1 LIMIT $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.022419,"max_time":0.022419,"mean_time":0.022419,"rows":1},{"query":"set client_encoding to 'unicode'","calls":1,"total_time":0.017691,"max_time":0.017691,"mean_time":0.017691,"rows":0},{"query":"SELECT pg_try_advisory_lock($1)","calls":1,"total_time":0.01039,"max_time":0.01039,"mean_time":0.01039,"rows":1},{"query":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.010238,"max_time":0.010238,"mean_time":0.010238,"rows":0},{"query":"SELECT pg_advisory_unlock($1)","calls":1,"total_time":0.008628,"max_time":0.008628,"mean_time":0.008628,"rows":1},{"query":"SELECT current_database()","calls":1,"total_time":0.008331999999999999,"max_time":0.008331999999999999,"mean_time":0.008331999999999999,"rows":1},{"query":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.004933,"max_time":0.004933,"mean_time":0.004933,"rows":0},{"query":"BEGIN /*application:test,db_config_name:main,line:/db/migrate/20210603233011_regular_migration_with_five_second_query.rb:5:in `up'*/","calls":1,"total_time":0.001363,"max_time":0.001363,"mean_time":0.001363,"rows":0},{"query":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/","calls":1,"total_time":0.001263,"max_time":0.001263,"mean_time":0.001263,"rows":0}]} \ No newline at end of file diff --git a/notifier/spec/fixtures/migration-testing/v4/main/up/RegularMigrationWithFiveSecondQuery/migration.log b/notifier/spec/fixtures/migration-testing/v4/main/up/RegularMigrationWithFiveSecondQuery/migration.log new file mode 100644 index 00000000..4b1b5889 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/main/up/RegularMigrationWithFiveSecondQuery/migration.log @@ -0,0 +1,20 @@ +# Logfile created on 2022-09-30 21:33:29 +0000 by logger.rb/v1.4.2 +D, [2022-09-30T21:33:30.195671 #388] DEBUG -- :  (40.5ms) SELECT pg_try_advisory_lock(3005434223539248480) +D, [2022-09-30T21:33:30.196204 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:30.277394 #388] DEBUG -- :  (80.0ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:33:30.281889 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +I, [2022-09-30T21:33:30.442151 #388] INFO -- : Migrating to RegularMigrationWithFiveSecondQuery (20210603233011) +D, [2022-09-30T21:33:30.485284 #388] DEBUG -- : TRANSACTION (40.6ms) BEGIN /*application:test,db_config_name:main,line:/db/migrate/20210603233011_regular_migration_with_five_second_query.rb:5:in `up'*/ +D, [2022-09-30T21:33:30.486269 #388] DEBUG -- : ↳ lib/gitlab/database.rb:332:in `block in transaction' +D, [2022-09-30T21:33:35.533863 #388] DEBUG -- :  (5047.0ms) SELECT pg_sleep(5); /*application:test,db_config_name:main,line:/db/migrate/20210603233011_regular_migration_with_five_second_query.rb:5:in `up'*/ +D, [2022-09-30T21:33:35.534806 #388] DEBUG -- : ↳ lib/gitlab/database.rb:332:in `block in transaction' +D, [2022-09-30T21:33:35.577515 #388] DEBUG -- : ActiveRecord::SchemaMigration Create (40.6ms) INSERT INTO "schema_migrations" ("version") VALUES ('20210603233011') RETURNING "version" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/ +D, [2022-09-30T21:33:35.578572 #388] DEBUG -- : ↳ lib/gitlab/database.rb:332:in `block in transaction' +D, [2022-09-30T21:33:35.620072 #388] DEBUG -- : TRANSACTION (40.5ms) COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/ +D, [2022-09-30T21:33:35.620627 #388] DEBUG -- : ↳ lib/gitlab/database.rb:365:in `commit' +D, [2022-09-30T21:33:35.663041 #388] DEBUG -- : ActiveRecord::InternalMetadata Load (40.6ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:33:35.663807 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:35.706028 #388] DEBUG -- :  (40.8ms) SELECT pg_advisory_unlock(3005434223539248480) +D, [2022-09-30T21:33:35.706643 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:35.908427 #388] DEBUG -- :  (160.1ms) select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/ +D, [2022-09-30T21:33:35.908885 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size' diff --git a/notifier/spec/fixtures/migration-testing/v4/main/up/RegularMigrationWithFiveSecondQuery/query-details.json b/notifier/spec/fixtures/migration-testing/v4/main/up/RegularMigrationWithFiveSecondQuery/query-details.json new file mode 100644 index 00000000..0084e5b1 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/main/up/RegularMigrationWithFiveSecondQuery/query-details.json @@ -0,0 +1 @@ +[{"start_time":"2022-09-30T21:33:29.451870+00:00","end_time":"2022-09-30T21:33:29.492976+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'schema_migrations' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:33:29.493361+00:00","end_time":"2022-09-30T21:33:29.534124+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'ar_internal_metadata' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:33:29.534435+00:00","end_time":"2022-09-30T21:33:29.574942+00:00","sql":"SELECT current_database()","binds":[]},{"start_time":"2022-09-30T21:33:29.822702+00:00","end_time":"2022-09-30T21:33:29.863142+00:00","sql":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:29.863687+00:00","end_time":"2022-09-30T21:33:29.904198+00:00","sql":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:29.904752+00:00","end_time":"2022-09-30T21:33:29.945406+00:00","sql":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:29.945988+00:00","end_time":"2022-09-30T21:33:29.986609+00:00","sql":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:29.989460+00:00","end_time":"2022-09-30T21:33:30.030042+00:00","sql":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:30.030753+00:00","end_time":"2022-09-30T21:33:30.072524+00:00","sql":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ('int2', 'int4', 'int8', 'oid', 'float4', 'float8', 'numeric', 'bool', 'timestamp', 'timestamptz')\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:30.073275+00:00","end_time":"2022-09-30T21:33:30.113875+00:00","sql":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:30.154359+00:00","end_time":"2022-09-30T21:33:30.196353+00:00","sql":"SELECT pg_try_advisory_lock(3005434223539248480)","binds":[]},{"start_time":"2022-09-30T21:33:30.197266+00:00","end_time":"2022-09-30T21:33:30.282135+00:00","sql":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:30.444591+00:00","end_time":"2022-09-30T21:33:30.486547+00:00","sql":"BEGIN /*application:test,db_config_name:main,line:/db/migrate/20210603233011_regular_migration_with_five_second_query.rb:5:in `up'*/","binds":[]},{"start_time":"2022-09-30T21:33:30.486706+00:00","end_time":"2022-09-30T21:33:35.535003+00:00","sql":"SELECT pg_sleep(5); /*application:test,db_config_name:main,line:/db/migrate/20210603233011_regular_migration_with_five_second_query.rb:5:in `up'*/","binds":[]},{"start_time":"2022-09-30T21:33:35.536790+00:00","end_time":"2022-09-30T21:33:35.578739+00:00","sql":"INSERT INTO \"schema_migrations\" (\"version\") VALUES ('20210603233011') RETURNING \"version\" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/","binds":[]},{"start_time":"2022-09-30T21:33:35.579492+00:00","end_time":"2022-09-30T21:33:35.620771+00:00","sql":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/","binds":[]},{"start_time":"2022-09-30T21:33:35.622308+00:00","end_time":"2022-09-30T21:33:35.663962+00:00","sql":"SELECT \"ar_internal_metadata\".* FROM \"ar_internal_metadata\" WHERE \"ar_internal_metadata\".\"key\" = 'environment' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:35.665081+00:00","end_time":"2022-09-30T21:33:35.706808+00:00","sql":"SELECT pg_advisory_unlock(3005434223539248480)","binds":[]},{"start_time":"2022-09-30T21:33:35.748200+00:00","end_time":"2022-09-30T21:33:35.909050+00:00","sql":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","binds":[]}] diff --git a/notifier/spec/fixtures/migration-testing/v4/main/up/RegularMigrationWithFiveSecondQuery/transaction-duration.json b/notifier/spec/fixtures/migration-testing/v4/main/up/RegularMigrationWithFiveSecondQuery/transaction-duration.json new file mode 100644 index 00000000..3980b0df --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/main/up/RegularMigrationWithFiveSecondQuery/transaction-duration.json @@ -0,0 +1 @@ +[{"start_time":"2022-09-30T21:33:30.443283+00:00","end_time":"2022-09-30T21:33:35.620938+00:00","transaction_type":"real_transaction"}] diff --git a/notifier/spec/fixtures/migration-testing/v4/main/up/TmpIdxNullMemberNamespaceId/migration-stats.json b/notifier/spec/fixtures/migration-testing/v4/main/up/TmpIdxNullMemberNamespaceId/migration-stats.json new file mode 100644 index 00000000..1c23368e --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/main/up/TmpIdxNullMemberNamespaceId/migration-stats.json @@ -0,0 +1 @@ +{"version":20220929081645,"name":"TmpIdxNullMemberNamespaceId","walltime":56.26328295469284,"success":true,"total_database_size_change":32768,"query_statistics":[{"query":"CREATE INDEX CONCURRENTLY \"tmp_index_for_null_member_namespace_id\" ON \"members\" (\"member_namespace_id\") WHERE member_namespace_id IS NULL /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:167:in `block in add_concurrent_index'*/","calls":1,"total_time":53779.06386,"max_time":53779.06386,"mean_time":53779.06386,"rows":0},{"query":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","calls":1,"total_time":180.96428,"max_time":180.96428,"mean_time":180.96428,"rows":1},{"query":"SELECT distinct i.relname, d.indisunique, d.indkey, pg_get_indexdef(d.indexrelid), t.oid,\n pg_catalog.obj_description(i.oid, $1) AS comment\nFROM pg_class t\nINNER JOIN pg_index d ON t.oid = d.indrelid\nINNER JOIN pg_class i ON d.indexrelid = i.oid\nLEFT JOIN pg_namespace n ON n.oid = i.relnamespace\nWHERE i.relkind IN ($2, $3)\n AND d.indisprimary = $4\n AND t.relname = $5\n AND n.nspname = ANY (current_schemas($6))\nORDER BY i.relname","calls":1,"total_time":85.186377,"max_time":85.186377,"mean_time":85.186377,"rows":15},{"query":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":59.795096,"max_time":59.795096,"mean_time":59.795096,"rows":5391},{"query":"SELECT \"postgres_async_indexes\".* FROM \"postgres_async_indexes\" WHERE \"postgres_async_indexes\".\"name\" = $1 LIMIT $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/async_indexes/migration_helpers.rb:24:in `unprepare_async_index_by_name'*/","calls":1,"total_time":16.03073,"max_time":16.03073,"mean_time":16.03073,"rows":0},{"query":"SELECT a.attname, format_type(a.atttypid, a.atttypmod),\n pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod,\n c.collname, col_description(a.attrelid, a.attnum) AS comment\n FROM pg_attribute a\n LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum\n LEFT JOIN pg_type t ON a.atttypid = t.oid\n LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation \u003c\u003e t.typcollation\n WHERE a.attrelid = $1::regclass\n AND a.attnum \u003e $2 AND NOT a.attisdropped\n ORDER BY a.attnum","calls":1,"total_time":0.840814,"max_time":0.840814,"mean_time":0.840814,"rows":6},{"query":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = $1\nAND a.attnum IN ($2)","calls":10,"total_time":0.28581700000000004,"max_time":0.035806000000000004,"mean_time":0.028581699999999998,"rows":10},{"query":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas($1)) AND c.relname = $2 AND c.relkind IN ($3,$4)","calls":5,"total_time":0.183634,"max_time":0.041876,"mean_time":0.0367268,"rows":5},{"query":"select pg_stat_statements_reset() /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/query_statistics.rb:16:in `before'*/","calls":1,"total_time":0.152181,"max_time":0.152181,"mean_time":0.152181,"rows":1},{"query":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = $1\nAND a.attnum IN ($2,$3)","calls":4,"total_time":0.144064,"max_time":0.039062,"mean_time":0.036016,"rows":8},{"query":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.084097,"max_time":0.084097,"mean_time":0.084097,"rows":10},{"query":"SELECT current_database()","calls":1,"total_time":0.067666,"max_time":0.067666,"mean_time":0.067666,"rows":1},{"query":"INSERT INTO \"schema_migrations\" (\"version\") VALUES ($1) RETURNING \"version\" /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction'*/","calls":1,"total_time":0.052521,"max_time":0.052521,"mean_time":0.052521,"rows":1},{"query":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.038282,"max_time":0.038282,"mean_time":0.038282,"rows":0},{"query":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = $1\nAND a.attnum IN ($2,$3,$4)","calls":1,"total_time":0.037499000000000005,"max_time":0.037499000000000005,"mean_time":0.037499000000000005,"rows":3},{"query":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.034489,"max_time":0.034489,"mean_time":0.034489,"rows":0},{"query":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.029674,"max_time":0.029674,"mean_time":0.029674,"rows":0},{"query":"SELECT \"ar_internal_metadata\".* FROM \"ar_internal_metadata\" WHERE \"ar_internal_metadata\".\"key\" = $1 LIMIT $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.027301,"max_time":0.027301,"mean_time":0.027301,"rows":1},{"query":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.026636,"max_time":0.026636,"mean_time":0.026636,"rows":0},{"query":"SELECT $1 FROM pg_proc WHERE proname = $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/schema_helpers.rb:20:in `function_exists?'*/","calls":1,"total_time":0.023149000000000003,"max_time":0.023149000000000003,"mean_time":0.023149000000000003,"rows":1},{"query":"set client_encoding to 'UTF8'","calls":1,"total_time":0.022824,"max_time":0.022824,"mean_time":0.022824,"rows":0},{"query":"set client_encoding to 'unicode'","calls":1,"total_time":0.019712,"max_time":0.019712,"mean_time":0.019712,"rows":0},{"query":"RESET statement_timeout /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:390:in `disable_statement_timeout'*/","calls":1,"total_time":0.016431,"max_time":0.016431,"mean_time":0.016431,"rows":0},{"query":"SET statement_timeout TO 0 /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:386:in `disable_statement_timeout'*/","calls":1,"total_time":0.015589,"max_time":0.015589,"mean_time":0.015589,"rows":0},{"query":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.014418,"max_time":0.014418,"mean_time":0.014418,"rows":0},{"query":"SELECT pg_try_advisory_lock($1)","calls":1,"total_time":0.013251,"max_time":0.013251,"mean_time":0.013251,"rows":1},{"query":"SELECT pg_advisory_unlock($1)","calls":1,"total_time":0.011916000000000001,"max_time":0.011916000000000001,"mean_time":0.011916000000000001,"rows":1},{"query":"SHOW max_identifier_length","calls":1,"total_time":0.008305,"max_time":0.008305,"mean_time":0.008305,"rows":0},{"query":"SHOW statement_timeout /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:1624:in `statement_timeout_disabled?'*/","calls":1,"total_time":0.00769,"max_time":0.00769,"mean_time":0.00769,"rows":0},{"query":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.006644,"max_time":0.006644,"mean_time":0.006644,"rows":0},{"query":"BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction'*/","calls":1,"total_time":0.00223,"max_time":0.00223,"mean_time":0.00223,"rows":0},{"query":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/","calls":1,"total_time":0.002089,"max_time":0.002089,"mean_time":0.002089,"rows":0}]} \ No newline at end of file diff --git a/notifier/spec/fixtures/migration-testing/v4/main/up/TmpIdxNullMemberNamespaceId/migration.log b/notifier/spec/fixtures/migration-testing/v4/main/up/TmpIdxNullMemberNamespaceId/migration.log new file mode 100644 index 00000000..b8f4c9bd --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/main/up/TmpIdxNullMemberNamespaceId/migration.log @@ -0,0 +1,28 @@ +# Logfile created on 2022-09-30 21:33:44 +0000 by logger.rb/v1.4.2 +D, [2022-09-30T21:33:45.135577 #388] DEBUG -- :  (45.4ms) SELECT pg_try_advisory_lock(3005434223539248480) +D, [2022-09-30T21:33:45.136099 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:45.279908 #388] DEBUG -- :  (142.5ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:33:45.280609 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +I, [2022-09-30T21:33:45.291603 #388] INFO -- : Migrating to TmpIdxNullMemberNamespaceId (20220929081645) +D, [2022-09-30T21:33:46.129712 #388] DEBUG -- :  (40.8ms) SHOW statement_timeout /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:1624:in `statement_timeout_disabled?'*/ +D, [2022-09-30T21:33:46.130331 #388] DEBUG -- : ↳ lib/gitlab/database/migration_helpers.rb:1624:in `statement_timeout_disabled?' +D, [2022-09-30T21:33:46.172802 #388] DEBUG -- :  (41.2ms) SET statement_timeout TO 0 /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:386:in `disable_statement_timeout'*/ +D, [2022-09-30T21:33:46.173575 #388] DEBUG -- : ↳ lib/gitlab/database/migration_helpers.rb:386:in `disable_statement_timeout' +D, [2022-09-30T21:34:40.038279 #388] DEBUG -- :  (53820.8ms) CREATE INDEX CONCURRENTLY "tmp_index_for_null_member_namespace_id" ON "members" ("member_namespace_id") WHERE member_namespace_id IS NULL /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:167:in `block in add_concurrent_index'*/ +D, [2022-09-30T21:34:40.039074 #388] DEBUG -- : ↳ lib/gitlab/database/migration_helpers.rb:167:in `block in add_concurrent_index' +D, [2022-09-30T21:34:40.081906 #388] DEBUG -- :  (41.3ms) RESET statement_timeout /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:390:in `disable_statement_timeout'*/ +D, [2022-09-30T21:34:40.082607 #388] DEBUG -- : ↳ lib/gitlab/database/migration_helpers.rb:390:in `disable_statement_timeout' +D, [2022-09-30T21:34:40.310615 #388] DEBUG -- : Gitlab::Database::AsyncIndexes::PostgresAsyncIndex Load (80.4ms) SELECT "postgres_async_indexes".* FROM "postgres_async_indexes" WHERE "postgres_async_indexes"."name" = 'tmp_index_for_null_member_namespace_id' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/async_indexes/migration_helpers.rb:24:in `unprepare_async_index_by_name'*/ +D, [2022-09-30T21:34:40.311324 #388] DEBUG -- : ↳ lib/gitlab/database/async_indexes/migration_helpers.rb:24:in `unprepare_async_index_by_name' +D, [2022-09-30T21:34:40.357701 #388] DEBUG -- : TRANSACTION (43.2ms) BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction'*/ +D, [2022-09-30T21:34:40.358873 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction' +D, [2022-09-30T21:34:40.400061 #388] DEBUG -- : ActiveRecord::SchemaMigration Create (40.7ms) INSERT INTO "schema_migrations" ("version") VALUES ('20220929081645') RETURNING "version" /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction'*/ +D, [2022-09-30T21:34:40.401029 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction' +D, [2022-09-30T21:34:40.442937 #388] DEBUG -- : TRANSACTION (41.0ms) COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/ +D, [2022-09-30T21:34:40.443461 #388] DEBUG -- : ↳ lib/gitlab/database.rb:365:in `commit' +D, [2022-09-30T21:34:40.486712 #388] DEBUG -- : ActiveRecord::InternalMetadata Load (41.6ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:34:40.487430 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:34:40.530962 #388] DEBUG -- :  (42.2ms) SELECT pg_advisory_unlock(3005434223539248480) +D, [2022-09-30T21:34:40.531455 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:34:40.795653 #388] DEBUG -- :  (221.5ms) select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/ +D, [2022-09-30T21:34:40.796139 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size' diff --git a/notifier/spec/fixtures/migration-testing/v4/main/up/TmpIdxNullMemberNamespaceId/query-details.json b/notifier/spec/fixtures/migration-testing/v4/main/up/TmpIdxNullMemberNamespaceId/query-details.json new file mode 100644 index 00000000..bc097648 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/main/up/TmpIdxNullMemberNamespaceId/query-details.json @@ -0,0 +1 @@ +[{"start_time":"2022-09-30T21:33:44.387478+00:00","end_time":"2022-09-30T21:33:44.429448+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'schema_migrations' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:33:44.429864+00:00","end_time":"2022-09-30T21:33:44.471054+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'ar_internal_metadata' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:33:44.471356+00:00","end_time":"2022-09-30T21:33:44.512478+00:00","sql":"SELECT current_database()","binds":[]},{"start_time":"2022-09-30T21:33:44.759399+00:00","end_time":"2022-09-30T21:33:44.800004+00:00","sql":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:44.800598+00:00","end_time":"2022-09-30T21:33:44.841204+00:00","sql":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:44.841770+00:00","end_time":"2022-09-30T21:33:44.882230+00:00","sql":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:44.882826+00:00","end_time":"2022-09-30T21:33:44.923504+00:00","sql":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:44.924159+00:00","end_time":"2022-09-30T21:33:44.964798+00:00","sql":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:44.965556+00:00","end_time":"2022-09-30T21:33:45.008050+00:00","sql":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ('int2', 'int4', 'int8', 'oid', 'float4', 'float8', 'numeric', 'bool', 'timestamp', 'timestamptz')\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:45.008859+00:00","end_time":"2022-09-30T21:33:45.049532+00:00","sql":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:45.090111+00:00","end_time":"2022-09-30T21:33:45.136276+00:00","sql":"SELECT pg_try_advisory_lock(3005434223539248480)","binds":[]},{"start_time":"2022-09-30T21:33:45.137264+00:00","end_time":"2022-09-30T21:33:45.280768+00:00","sql":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:45.295588+00:00","end_time":"2022-09-30T21:33:45.444030+00:00","sql":"SELECT distinct i.relname, d.indisunique, d.indkey, pg_get_indexdef(d.indexrelid), t.oid,\n pg_catalog.obj_description(i.oid, 'pg_class') AS comment\nFROM pg_class t\nINNER JOIN pg_index d ON t.oid = d.indrelid\nINNER JOIN pg_class i ON d.indexrelid = i.oid\nLEFT JOIN pg_namespace n ON n.oid = i.relnamespace\nWHERE i.relkind IN ('i', 'I')\n AND d.indisprimary = 'f'\n AND t.relname = 'members'\n AND n.nspname = ANY (current_schemas(false))\nORDER BY i.relname\n","binds":[]},{"start_time":"2022-09-30T21:33:45.444233+00:00","end_time":"2022-09-30T21:33:45.488460+00:00","sql":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (8)\n","binds":[]},{"start_time":"2022-09-30T21:33:45.488715+00:00","end_time":"2022-09-30T21:33:45.532658+00:00","sql":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (2)\n","binds":[]},{"start_time":"2022-09-30T21:33:45.532882+00:00","end_time":"2022-09-30T21:33:45.575201+00:00","sql":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (15)\n","binds":[]},{"start_time":"2022-09-30T21:33:45.575444+00:00","end_time":"2022-09-30T21:33:45.619155+00:00","sql":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (11)\n","binds":[]},{"start_time":"2022-09-30T21:33:45.619375+00:00","end_time":"2022-09-30T21:33:45.663044+00:00","sql":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (12)\n","binds":[]},{"start_time":"2022-09-30T21:33:45.663264+00:00","end_time":"2022-09-30T21:33:45.706515+00:00","sql":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (20)\n","binds":[]},{"start_time":"2022-09-30T21:33:45.706769+00:00","end_time":"2022-09-30T21:33:45.748906+00:00","sql":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (21)\n","binds":[]},{"start_time":"2022-09-30T21:33:45.749149+00:00","end_time":"2022-09-30T21:33:45.791248+00:00","sql":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (14)\n","binds":[]},{"start_time":"2022-09-30T21:33:45.791522+00:00","end_time":"2022-09-30T21:33:45.834678+00:00","sql":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (3,4)\n","binds":[]},{"start_time":"2022-09-30T21:33:45.834921+00:00","end_time":"2022-09-30T21:33:45.876948+00:00","sql":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (5,2)\n","binds":[]},{"start_time":"2022-09-30T21:33:45.877178+00:00","end_time":"2022-09-30T21:33:45.919370+00:00","sql":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (5,8)\n","binds":[]},{"start_time":"2022-09-30T21:33:45.919619+00:00","end_time":"2022-09-30T21:33:45.961725+00:00","sql":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (5,3,4)\n","binds":[]},{"start_time":"2022-09-30T21:33:45.961976+00:00","end_time":"2022-09-30T21:33:46.003704+00:00","sql":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (3,4)\n","binds":[]},{"start_time":"2022-09-30T21:33:46.003944+00:00","end_time":"2022-09-30T21:33:46.045665+00:00","sql":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (1)\n","binds":[]},{"start_time":"2022-09-30T21:33:46.045893+00:00","end_time":"2022-09-30T21:33:46.087837+00:00","sql":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (19)\n","binds":[]},{"start_time":"2022-09-30T21:33:46.088830+00:00","end_time":"2022-09-30T21:33:46.130758+00:00","sql":"SHOW statement_timeout /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:1624:in `statement_timeout_disabled?'*/","binds":[]},{"start_time":"2022-09-30T21:33:46.131525+00:00","end_time":"2022-09-30T21:33:46.174194+00:00","sql":"SET statement_timeout TO 0 /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:386:in `disable_statement_timeout'*/","binds":[]},{"start_time":"2022-09-30T21:33:46.174801+00:00","end_time":"2022-09-30T21:33:46.216560+00:00","sql":"SHOW max_identifier_length","binds":[]},{"start_time":"2022-09-30T21:33:46.217339+00:00","end_time":"2022-09-30T21:34:40.039780+00:00","sql":"CREATE INDEX CONCURRENTLY \"tmp_index_for_null_member_namespace_id\" ON \"members\" (\"member_namespace_id\") WHERE member_namespace_id IS NULL /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:167:in `block in add_concurrent_index'*/","binds":[]},{"start_time":"2022-09-30T21:34:40.040531+00:00","end_time":"2022-09-30T21:34:40.083019+00:00","sql":"RESET statement_timeout /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:390:in `disable_statement_timeout'*/","binds":[]},{"start_time":"2022-09-30T21:34:40.083549+00:00","end_time":"2022-09-30T21:34:40.125369+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'postgres_async_indexes' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:34:40.125647+00:00","end_time":"2022-09-30T21:34:40.180209+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'postgres_async_indexes' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:34:40.183071+00:00","end_time":"2022-09-30T21:34:40.227507+00:00","sql":"SELECT a.attname, format_type(a.atttypid, a.atttypmod),\n pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod,\n c.collname, col_description(a.attrelid, a.attnum) AS comment\n FROM pg_attribute a\n LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum\n LEFT JOIN pg_type t ON a.atttypid = t.oid\n LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation \u003c\u003e t.typcollation\n WHERE a.attrelid = '\"postgres_async_indexes\"'::regclass\n AND a.attnum \u003e 0 AND NOT a.attisdropped\n ORDER BY a.attnum\n","binds":[]},{"start_time":"2022-09-30T21:34:40.230038+00:00","end_time":"2022-09-30T21:34:40.312064+00:00","sql":"SELECT \"postgres_async_indexes\".* FROM \"postgres_async_indexes\" WHERE \"postgres_async_indexes\".\"name\" = 'tmp_index_for_null_member_namespace_id' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/async_indexes/migration_helpers.rb:24:in `unprepare_async_index_by_name'*/","binds":[]},{"start_time":"2022-09-30T21:34:40.314347+00:00","end_time":"2022-09-30T21:34:40.359090+00:00","sql":"BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction'*/","binds":[]},{"start_time":"2022-09-30T21:34:40.359232+00:00","end_time":"2022-09-30T21:34:40.401174+00:00","sql":"INSERT INTO \"schema_migrations\" (\"version\") VALUES ('20220929081645') RETURNING \"version\" /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction'*/","binds":[]},{"start_time":"2022-09-30T21:34:40.401836+00:00","end_time":"2022-09-30T21:34:40.443611+00:00","sql":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/","binds":[]},{"start_time":"2022-09-30T21:34:40.444961+00:00","end_time":"2022-09-30T21:34:40.487570+00:00","sql":"SELECT \"ar_internal_metadata\".* FROM \"ar_internal_metadata\" WHERE \"ar_internal_metadata\".\"key\" = 'environment' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:34:40.488699+00:00","end_time":"2022-09-30T21:34:40.531590+00:00","sql":"SELECT pg_advisory_unlock(3005434223539248480)","binds":[]},{"start_time":"2022-09-30T21:34:40.573992+00:00","end_time":"2022-09-30T21:34:40.796271+00:00","sql":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","binds":[]}] diff --git a/notifier/spec/fixtures/migration-testing/v4/main/up/TmpIdxNullMemberNamespaceId/transaction-duration.json b/notifier/spec/fixtures/migration-testing/v4/main/up/TmpIdxNullMemberNamespaceId/transaction-duration.json new file mode 100644 index 00000000..fe51488c --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/main/up/TmpIdxNullMemberNamespaceId/transaction-duration.json @@ -0,0 +1 @@ +[] diff --git a/notifier/spec/fixtures/migration-testing/v4/main/up/full-migration-output.log b/notifier/spec/fixtures/migration-testing/v4/main/up/full-migration-output.log new file mode 100644 index 00000000..4fbad7a2 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/main/up/full-migration-output.log @@ -0,0 +1,53 @@ +== 20210602144718 CreateTestTable: migrating ================================== +-- create_table(:test_tables, {}) +-- quote_column_name(:title) + -> 0.0000s +-- quote_column_name(:notes) + -> 0.0000s + -> 0.2807s +-- quote_table_name("check_0770ba173a") + -> 0.0001s +-- quote_table_name("check_9cfc473dbc") + -> 0.0000s +-- quote_table_name(:test_tables) + -> 0.0000s +-- execute("ALTER TABLE \"test_tables\"\nADD CONSTRAINT \"check_0770ba173a\" CHECK (char_length(\"title\") <= 128),\nADD CONSTRAINT \"check_9cfc473dbc\" CHECK (char_length(\"notes\") <= 1024)\n") + -> 0.0507s +== 20210602144718 CreateTestTable: migrated (0.5703s) ========================= + +== 20210603233011 RegularMigrationWithFiveSecondQuery: migrating ============== +-- execute("SELECT pg_sleep(5);") + -> 5.0916s +== 20210603233011 RegularMigrationWithFiveSecondQuery: migrated (5.0917s) ===== + +== 20210604232017 DropTestTable: migrating ==================================== +-- drop_table(:test_tables) + -> 0.0870s +== 20210604232017 DropTestTable: migrated (0.0872s) =========================== + +main: == 20210915152743 MigrationInheritsGitlabDatabaseMigration: migrating ========= +main: -- execute("SELECT 'up'") +main: -> 0.0854s +main: == 20210915152743 MigrationInheritsGitlabDatabaseMigration: migrated (0.0857s) + +main: == 20220223163519 EnsureGitlabComInMigrations: migrating ====================== +main: == 20220223163519 EnsureGitlabComInMigrations: migrated (0.0000s) ============= + +main: == 20220318174439 QueueTestBackgroundMigration: migrating ===================== +main: == 20220318174439 QueueTestBackgroundMigration: migrated (0.6056s) ============ + +main: == 20220929081645 TmpIdxNullMemberNamespaceId: migrating ====================== +main: -- transaction_open?() +main: -> 0.0000s +main: -- index_exists?(:members, :member_namespace_id, {:name=>"tmp_index_for_null_member_namespace_id", :where=>"member_namespace_id IS NULL", :algorithm=>:concurrently}) +main: -> 0.7927s +main: -- execute("SET statement_timeout TO 0") +main: -> 0.0432s +main: -- add_index(:members, :member_namespace_id, {:name=>"tmp_index_for_null_member_namespace_id", :where=>"member_namespace_id IS NULL", :algorithm=>:concurrently}) +main: -> 53.8653s +main: -- execute("RESET statement_timeout") +main: -> 0.0430s +main: == 20220929081645 TmpIdxNullMemberNamespaceId: migrated (55.0195s) ============ + +== 20990604233157 MigrationThrowsException: migrating ========================= +-- RuntimeError("This throws an exception") diff --git a/notifier/spec/fixtures/migration-testing/v4/main/up/metadata.json b/notifier/spec/fixtures/migration-testing/v4/main/up/metadata.json new file mode 100644 index 00000000..d5f20e73 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/main/up/metadata.json @@ -0,0 +1 @@ +{"database":"main","version":4} \ No newline at end of file diff --git a/notifier/spec/fixtures/migration-testing/v4/migrations.json b/notifier/spec/fixtures/migration-testing/v4/migrations.json new file mode 100644 index 00000000..8adc21a2 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/migrations.json @@ -0,0 +1 @@ +{"20210303064112":{"version":20210303064112,"path":"db/post_migrate/20210303064112_add_not_null_constraints_to_gitlab_subscriptions_namespace_id.rb","name":"AddNotNullConstraintsToGitlabSubscriptionsNamespaceId","type":"post_deploy","intro_on_current_branch":false},"20220305223212":{"version":20220305223212,"path":"db/post_migrate/20220305223212_add_security_training_providers.rb","name":"AddSecurityTrainingProviders","type":"post_deploy","intro_on_current_branch":false},"20220621092245":{"version":20220621092245,"path":"db/post_migrate/20220621092245_validate_not_null_constraint_on_routes_namespace_id_column.rb","name":"ValidateNotNullConstraintOnRoutesNamespaceIdColumn","type":"post_deploy","intro_on_current_branch":false},"20220201173212":{"version":20220201173212,"path":"db/post_migrate/20220201173212_add_user_details_provisioning_index.rb","name":"AddUserDetailsProvisioningIndex","type":"post_deploy","intro_on_current_branch":false},"20220921111849":{"version":20220921111849,"path":"db/post_migrate/20220921111849_remove_and_add_ci_job_variables_raw_with_new_default.rb","name":"RemoveAndAddCiJobVariablesRawWithNewDefault","type":"post_deploy","intro_on_current_branch":false},"20210629104933":{"version":20210629104933,"path":"db/post_migrate/20210629104933_drop_index_on_ci_builds_for_token.rb","name":"DropIndexOnCiBuildsForToken","type":"post_deploy","intro_on_current_branch":false},"20210621111747":{"version":20210621111747,"path":"db/post_migrate/20210621111747_add_ci_artifacts_devops_adoption_index.rb","name":"AddCiArtifactsDevopsAdoptionIndex","type":"post_deploy","intro_on_current_branch":false},"20220523165734":{"version":20220523165734,"path":"db/post_migrate/20220523165734_add_index_to_vulnerability_reads_casted_cluster_agent_id.rb","name":"AddIndexToVulnerabilityReadsCastedClusterAgentId","type":"post_deploy","intro_on_current_branch":false},"20220409160628":{"version":20220409160628,"path":"db/post_migrate/20220409160628_add_async_index_for_events_followed_users.rb","name":"AddAsyncIndexForEventsFollowedUsers","type":"post_deploy","intro_on_current_branch":false},"20220307192725":{"version":20220307192725,"path":"db/post_migrate/20220307192725_create_unique_index_release_tag_project.rb","name":"CreateUniqueIndexReleaseTagProject","type":"post_deploy","intro_on_current_branch":false},"20220112090556":{"version":20220112090556,"path":"db/post_migrate/20220112090556_remove_cascade_delete_from_project_namespace_foreign_key.rb","name":"RemoveCascadeDeleteFromProjectNamespaceForeignKey","type":"post_deploy","intro_on_current_branch":false},"20220209111007":{"version":20220209111007,"path":"db/post_migrate/20220209111007_add_partial_index_for_batching_active_cluster_image_scanning_vulnerabilities.rb","name":"AddPartialIndexForBatchingActiveClusterImageScanningVulnerabilities","type":"post_deploy","intro_on_current_branch":false},"20211104044453":{"version":20211104044453,"path":"db/post_migrate/20211104044453_remove_redundant_events_index.rb","name":"RemoveRedundantEventsIndex","type":"post_deploy","intro_on_current_branch":false},"20220309084838":{"version":20220309084838,"path":"db/post_migrate/20220309084838_remove_external_pull_request_tracking.rb","name":"RemoveExternalPullRequestTracking","type":"post_deploy","intro_on_current_branch":false},"20220823084747":{"version":20220823084747,"path":"db/post_migrate/20220823084747_prepare_removal_partial_trigram_indexes_for_issues.rb","name":"PrepareRemovalPartialTrigramIndexesForIssues","type":"post_deploy","intro_on_current_branch":false},"20210430121542":{"version":20210430121542,"path":"db/post_migrate/20210430121542_backfill_ci_build_trace_sections_for_bigint_conversion.rb","name":"BackfillCiBuildTraceSectionsForBigintConversion","type":"post_deploy","intro_on_current_branch":false},"20220223112304":{"version":20220223112304,"path":"db/post_migrate/20220223112304_schedule_nullify_orphan_runner_id_on_ci_builds.rb","name":"ScheduleNullifyOrphanRunnerIdOnCiBuilds","type":"post_deploy","intro_on_current_branch":false},"20220128103042":{"version":20220128103042,"path":"db/post_migrate/20220128103042_schedule_delete_invalid_epic_issues_revised.rb","name":"ScheduleDeleteInvalidEpicIssuesRevised","type":"post_deploy","intro_on_current_branch":false},"20220425111453":{"version":20220425111453,"path":"db/post_migrate/20220425111453_add_async_index_to_events_on_group_id_and_id.rb","name":"AddAsyncIndexToEventsOnGroupIdAndId","type":"post_deploy","intro_on_current_branch":false},"20210604133651":{"version":20210604133651,"path":"db/post_migrate/20210604133651_schedule_merge_request_diff_users_background_migration.rb","name":"ScheduleMergeRequestDiffUsersBackgroundMigration","type":"post_deploy","intro_on_current_branch":false},"20220213103859":{"version":20220213103859,"path":"db/post_migrate/20220213103859_remove_integrations_type.rb","name":"RemoveIntegrationsType","type":"post_deploy","intro_on_current_branch":false},"20210826193907":{"version":20210826193907,"path":"db/post_migrate/20210826193907_add_unique_index_dast_site_token_project_id_and_url.rb","name":"AddUniqueIndexDastSiteTokenProjectIdAndUrl","type":"post_deploy","intro_on_current_branch":false},"20210511095658":{"version":20210511095658,"path":"db/post_migrate/20210511095658_schedule_migrate_project_taggings_context_from_tags_to_topics.rb","name":"ScheduleMigrateProjectTaggingsContextFromTagsToTopics","type":"post_deploy","intro_on_current_branch":false},"20220124215857":{"version":20220124215857,"path":"db/post_migrate/20220124215857_remove_projects_ci_job_token_project_scope_links_source_project_id_fk.rb","name":"RemoveProjectsCiJobTokenProjectScopeLinksSourceProjectIdFk","type":"post_deploy","intro_on_current_branch":false},"20220117034056":{"version":20220117034056,"path":"db/post_migrate/20220117034056_remove_index_cluster_agent_tokens_on_agent_id_and_last_used_at.rb","name":"RemoveIndexClusterAgentTokensOnAgentIdAndLastUsedAt","type":"post_deploy","intro_on_current_branch":false},"20220801150028":{"version":20220801150028,"path":"db/post_migrate/20220801150028_add_partial_trigram_index_for_issue_description.rb","name":"AddPartialTrigramIndexForIssueDescription","type":"post_deploy","intro_on_current_branch":false},"20220505044348":{"version":20220505044348,"path":"db/post_migrate/20220505044348_fix_automatic_iterations_cadences_start_date.rb","name":"FixAutomaticIterationsCadencesStartDate","type":"post_deploy","intro_on_current_branch":false},"20211021131217":{"version":20211021131217,"path":"db/post_migrate/20211021131217_add_deployments_environment_id_and_ref_index.rb","name":"AddDeploymentsEnvironmentIdAndRefIndex","type":"post_deploy","intro_on_current_branch":false},"20211023102243":{"version":20211023102243,"path":"db/post_migrate/20211023102243_schedule_delete_invalid_epic_issues.rb","name":"ScheduleDeleteInvalidEpicIssues","type":"post_deploy","intro_on_current_branch":false},"20220616222253":{"version":20220616222253,"path":"db/post_migrate/20220616222253_remove_ci_secure_files_permissions_column.rb","name":"RemoveCiSecureFilesPermissionsColumn","type":"post_deploy","intro_on_current_branch":false},"20220601040233":{"version":20220601040233,"path":"db/post_migrate/20220601040233_finalize_backfill_issue_search_data.rb","name":"FinalizeBackfillIssueSearchData","type":"post_deploy","intro_on_current_branch":false},"20210506065000":{"version":20210506065000,"path":"db/post_migrate/20210506065000_schedule_backfill_traversal_ids.rb","name":"ScheduleBackfillTraversalIds","type":"post_deploy","intro_on_current_branch":false},"20220119154442":{"version":20220119154442,"path":"db/post_migrate/20220119154442_remove_ci_pipelines_merge_requests_head_pipeline_id_fk.rb","name":"RemoveCiPipelinesMergeRequestsHeadPipelineIdFk","type":"post_deploy","intro_on_current_branch":false},"20211206162601":{"version":20211206162601,"path":"db/post_migrate/20211206162601_cleanup_after_add_primary_email_to_emails_if_user_confirmed.rb","name":"CleanupAfterAddPrimaryEmailToEmailsIfUserConfirmed","type":"post_deploy","intro_on_current_branch":false},"20210415155043":{"version":20210415155043,"path":"db/post_migrate/20210415155043_move_container_registry_enabled_to_project_features3.rb","name":"MoveContainerRegistryEnabledToProjectFeatures3","type":"post_deploy","intro_on_current_branch":false},"20210922091402":{"version":20210922091402,"path":"db/post_migrate/20210922091402_drop_int4_column_for_push_event_payloads.rb","name":"DropInt4ColumnForPushEventPayloads","type":"post_deploy","intro_on_current_branch":false},"20210805131510":{"version":20210805131510,"path":"db/post_migrate/20210805131510_finalize_ci_builds_runner_session_bigint_conversion.rb","name":"FinalizeCiBuildsRunnerSessionBigintConversion","type":"post_deploy","intro_on_current_branch":false},"20220517144749":{"version":20220517144749,"path":"db/post_migrate/20220517144749_remove_vulnerability_approval_rules.rb","name":"RemoveVulnerabilityApprovalRules","type":"post_deploy","intro_on_current_branch":false},"20210918202855":{"version":20210918202855,"path":"db/post_migrate/20210918202855_reschedule_pending_jobs_for_recalculate_vulnerabilities_occurrences_uuid.rb","name":"ReschedulePendingJobsForRecalculateVulnerabilitiesOccurrencesUuid","type":"post_deploy","intro_on_current_branch":false},"20220215190020":{"version":20220215190020,"path":"db/post_migrate/20220215190020_rerun_convert_stringified_raw_metadata_hash_to_json.rb","name":"RerunConvertStringifiedRawMetadataHashToJson","type":"post_deploy","intro_on_current_branch":false},"20220606060850":{"version":20220606060850,"path":"db/post_migrate/20220606060850_add_not_null_constraint_on_routes_namespace_id.rb","name":"AddNotNullConstraintOnRoutesNamespaceId","type":"post_deploy","intro_on_current_branch":false},"20220106233459":{"version":20220106233459,"path":"db/post_migrate/20220106233459_remove_foreign_key_ci_pending_builds_namespace_id.rb","name":"RemoveForeignKeyCiPendingBuildsNamespaceId","type":"post_deploy","intro_on_current_branch":false},"20210615234935":{"version":20210615234935,"path":"db/post_migrate/20210615234935_fix_batched_migrations_old_format_job_arguments.rb","name":"FixBatchedMigrationsOldFormatJobArguments","type":"post_deploy","intro_on_current_branch":false},"20211124132705":{"version":20211124132705,"path":"db/post_migrate/20211124132705_change_index_users_on_public_email.rb","name":"ChangeIndexUsersOnPublicEmail","type":"post_deploy","intro_on_current_branch":false},"20211022160154":{"version":20211022160154,"path":"db/post_migrate/20211022160154_remove_outdated_fields_from_geo_node_status.rb","name":"RemoveOutdatedFieldsFromGeoNodeStatus","type":"post_deploy","intro_on_current_branch":false},"20220530082653":{"version":20220530082653,"path":"db/post_migrate/20220530082653_add_traversal_id_type_group_index.rb","name":"AddTraversalIdTypeGroupIndex","type":"post_deploy","intro_on_current_branch":false},"20220308115502":{"version":20220308115502,"path":"db/post_migrate/20220308115502_schedule_reset_duplicate_ci_runners_token_values_on_projects.rb","name":"ScheduleResetDuplicateCiRunnersTokenValuesOnProjects","type":"post_deploy","intro_on_current_branch":false},"20210918201050":{"version":20210918201050,"path":"db/post_migrate/20210918201050_remove_old_pending_jobs_for_recalculate_vulnerabilities_occurrences_uuid.rb","name":"RemoveOldPendingJobsForRecalculateVulnerabilitiesOccurrencesUuid","type":"post_deploy","intro_on_current_branch":false},"20220912085047":{"version":20220912085047,"path":"db/post_migrate/20220912085047_add_index_to_todos_pending_query.rb","name":"AddIndexToTodosPendingQuery","type":"post_deploy","intro_on_current_branch":false},"20220118204039":{"version":20220118204039,"path":"db/post_migrate/20220118204039_self_managed_reschedule_recalculate_vulnerability_finding_signatures_for_findings.rb","name":"SelfManagedRescheduleRecalculateVulnerabilityFindingSignaturesForFindings","type":"post_deploy","intro_on_current_branch":false},"20220920135356":{"version":20220920135356,"path":"db/post_migrate/20220920135356_tiebreak_user_type_index.rb","name":"TiebreakUserTypeIndex","type":"post_deploy","intro_on_current_branch":false},"20220315181136":{"version":20220315181136,"path":"db/post_migrate/20220315181136_backfill_work_item_type_id_on_issues.rb","name":"BackfillWorkItemTypeIdOnIssues","type":"post_deploy","intro_on_current_branch":false},"20220119201340":{"version":20220119201340,"path":"db/post_migrate/20220119201340_remove_ci_pipelines_vulnerability_statistics_latest_pipeline_id_fk.rb","name":"RemoveCiPipelinesVulnerabilityStatisticsLatestPipelineIdFk","type":"post_deploy","intro_on_current_branch":false},"20220318111729":{"version":20220318111729,"path":"db/post_migrate/20220318111729_cleanup_after_fixing_issue_when_admin_changed_primary_email.rb","name":"CleanupAfterFixingIssueWhenAdminChangedPrimaryEmail","type":"post_deploy","intro_on_current_branch":false},"20210825193548":{"version":20210825193548,"path":"db/post_migrate/20210825193548_add_fk_to_iteration_cadence_id_on_boards.rb","name":"AddFkToIterationCadenceIdOnBoards","type":"post_deploy","intro_on_current_branch":false},"20220506201639":{"version":20220506201639,"path":"db/post_migrate/20220506201639_remove_devops_adoption_security_scan_succeeded_column.rb","name":"RemoveDevopsAdoptionSecurityScanSucceededColumn","type":"post_deploy","intro_on_current_branch":false},"20220322071127":{"version":20220322071127,"path":"db/post_migrate/20220322071127_finalize_project_namespaces_backfill.rb","name":"FinalizeProjectNamespacesBackfill","type":"post_deploy","intro_on_current_branch":false},"20220715054506":{"version":20220715054506,"path":"db/post_migrate/20220715054506_add_parent_link_unique_work_item_index.rb","name":"AddParentLinkUniqueWorkItemIndex","type":"post_deploy","intro_on_current_branch":false},"20211217174331":{"version":20211217174331,"path":"db/post_migrate/20211217174331_mark_recalculate_finding_signatures_as_completed.rb","name":"MarkRecalculateFindingSignaturesAsCompleted","type":"post_deploy","intro_on_current_branch":false},"20210729163312":{"version":20210729163312,"path":"db/post_migrate/20210729163312_re_schedule_latest_pipeline_id_population_with_all_security_related_artifact_types.rb","name":"ReScheduleLatestPipelineIdPopulationWithAllSecurityRelatedArtifactTypes","type":"post_deploy","intro_on_current_branch":false},"20220715185436":{"version":20220715185436,"path":"db/post_migrate/20220715185436_add_index_on_security_findings_unique_columns.rb","name":"AddIndexOnSecurityFindingsUniqueColumns","type":"post_deploy","intro_on_current_branch":false},"20210831123008":{"version":20210831123008,"path":"db/post_migrate/20210831123008_drop_temporary_trigger_for_ci_sources_pipelines.rb","name":"DropTemporaryTriggerForCiSourcesPipelines","type":"post_deploy","intro_on_current_branch":false},"20220307192645":{"version":20220307192645,"path":"db/post_migrate/20220307192645_remove_index_for_remove_duplicate_project_tag_releases.rb","name":"RemoveIndexForRemoveDuplicateProjectTagReleases","type":"post_deploy","intro_on_current_branch":false},"20220124151456":{"version":20220124151456,"path":"db/post_migrate/20220124151456_remove_projects_ci_triggers_project_id_fk.rb","name":"RemoveProjectsCiTriggersProjectIdFk","type":"post_deploy","intro_on_current_branch":false},"20211004151202":{"version":20211004151202,"path":"db/post_migrate/20211004151202_remove_bio_html_from_user_details.rb","name":"RemoveBioHtmlFromUserDetails","type":"post_deploy","intro_on_current_branch":false},"20220801155858":{"version":20220801155858,"path":"db/post_migrate/20220801155858_schedule_disable_legacy_open_source_licence_for_recent_public_projects.rb","name":"ScheduleDisableLegacyOpenSourceLicenceForRecentPublicProjects","type":"post_deploy","intro_on_current_branch":false},"20220316102900":{"version":20220316102900,"path":"db/post_migrate/20220316102900_add_index_to_deploy_tokens_on_creator_id.rb","name":"AddIndexToDeployTokensOnCreatorId","type":"post_deploy","intro_on_current_branch":false},"20211007093340":{"version":20211007093340,"path":"db/post_migrate/20211007093340_remove_analytics_snapshots_segment_id_column.rb","name":"RemoveAnalyticsSnapshotsSegmentIdColumn","type":"post_deploy","intro_on_current_branch":false},"20211201101541":{"version":20211201101541,"path":"db/post_migrate/20211201101541_drop_clusters_applications_runners_ci_runners_fk.rb","name":"DropClustersApplicationsRunnersCiRunnersFk","type":"post_deploy","intro_on_current_branch":false},"20211110143306":{"version":20211110143306,"path":"db/post_migrate/20211110143306_add_not_null_constraint_to_security_findings_uuid.rb","name":"AddNotNullConstraintToSecurityFindingsUuid","type":"post_deploy","intro_on_current_branch":false},"20220920081631":{"version":20220920081631,"path":"db/post_migrate/20220920081631_prepare_ci_builds_metadata_for_partitioning_primary_key.rb","name":"PrepareCiBuildsMetadataForPartitioningPrimaryKey","type":"post_deploy","intro_on_current_branch":false},"20210326121537":{"version":20210326121537,"path":"db/post_migrate/20210326121537_backfill_cleanup_for_partitioned_web_hook_logs.rb","name":"BackfillCleanupForPartitionedWebHookLogs","type":"post_deploy","intro_on_current_branch":false},"20211007155221":{"version":20211007155221,"path":"db/post_migrate/20211007155221_schedule_populate_status_column_of_security_scans.rb","name":"SchedulePopulateStatusColumnOfSecurityScans","type":"post_deploy","intro_on_current_branch":false},"20220110233155":{"version":20220110233155,"path":"db/post_migrate/20220110233155_remove_dast_site_profiles_builds_ci_build_id_fk.rb","name":"RemoveDastSiteProfilesBuildsCiBuildIdFk","type":"post_deploy","intro_on_current_branch":false},"20211116091751":{"version":20211116091751,"path":"db/post_migrate/20211116091751_change_namespace_type_default_to_user.rb","name":"ChangeNamespaceTypeDefaultToUser","type":"post_deploy","intro_on_current_branch":false},"20220617123022":{"version":20220617123022,"path":"db/post_migrate/20220617123022_add_unique_index_on_projects_on_runners_token.rb","name":"AddUniqueIndexOnProjectsOnRunnersToken","type":"post_deploy","intro_on_current_branch":false},"20220504083836":{"version":20220504083836,"path":"db/post_migrate/20220504083836_cleanup_after_fixing_regression_with_new_users_emails.rb","name":"CleanupAfterFixingRegressionWithNewUsersEmails","type":"post_deploy","intro_on_current_branch":false},"20220712181304":{"version":20220712181304,"path":"db/post_migrate/20220712181304_remove_deprecated_indexes_from_todos.rb","name":"RemoveDeprecatedIndexesFromTodos","type":"post_deploy","intro_on_current_branch":false},"20220603173103":{"version":20220603173103,"path":"db/post_migrate/20220603173103_update_vulnerabilities_project_id_id_index.rb","name":"UpdateVulnerabilitiesProjectIdIdIndex","type":"post_deploy","intro_on_current_branch":false},"20210601073400":{"version":20210601073400,"path":"db/post_migrate/20210601073400_fix_total_stage_in_vsa.rb","name":"FixTotalStageInVsa","type":"post_deploy","intro_on_current_branch":false},"20210907013944":{"version":20210907013944,"path":"db/post_migrate/20210907013944_cleanup_bigint_conversion_for_ci_builds_metadata.rb","name":"CleanupBigintConversionForCiBuildsMetadata","type":"post_deploy","intro_on_current_branch":false},"20220715185348":{"version":20220715185348,"path":"db/post_migrate/20220715185348_add_index_on_security_findings_id_and_partition_number.rb","name":"AddIndexOnSecurityFindingsIdAndPartitionNumber","type":"post_deploy","intro_on_current_branch":false},"20210713042153":{"version":20210713042153,"path":"db/post_migrate/20210713042153_finalize_ci_sources_pipelines_bigint_conversion.rb","name":"FinalizeCiSourcesPipelinesBigintConversion","type":"post_deploy","intro_on_current_branch":false},"20211116111644":{"version":20211116111644,"path":"db/post_migrate/20211116111644_schedule_remove_occurrence_pipelines_and_duplicate_vulnerabilities_findings.rb","name":"ScheduleRemoveOccurrencePipelinesAndDuplicateVulnerabilitiesFindings","type":"post_deploy","intro_on_current_branch":false},"20210609125005":{"version":20210609125005,"path":"db/post_migrate/20210609125005_drop_non_partitioned_web_hook_logs.rb","name":"DropNonPartitionedWebHookLogs","type":"post_deploy","intro_on_current_branch":false},"20220120123700":{"version":20220120123700,"path":"db/post_migrate/20220120123700_add_tmp_index_routes_id_for_namespaces.rb","name":"AddTmpIndexRoutesIdForNamespaces","type":"post_deploy","intro_on_current_branch":false},"20210823193234":{"version":20210823193234,"path":"db/post_migrate/20210823193234_remove_allow_editing_commit_messages_from_project_settings.rb","name":"RemoveAllowEditingCommitMessagesFromProjectSettings","type":"post_deploy","intro_on_current_branch":false},"20220425111114":{"version":20220425111114,"path":"db/post_migrate/20220425111114_add_async_index_for_project_activity_events.rb","name":"AddAsyncIndexForProjectActivityEvents","type":"post_deploy","intro_on_current_branch":false},"20220704044408":{"version":20220704044408,"path":"db/post_migrate/20220704044408_remove_foreign_key_in_project_tracing_settings.rb","name":"RemoveForeignKeyInProjectTracingSettings","type":"post_deploy","intro_on_current_branch":false},"20210910194952":{"version":20210910194952,"path":"db/post_migrate/20210910194952_update_report_type_for_existing_approval_project_rules.rb","name":"UpdateReportTypeForExistingApprovalProjectRules","type":"post_deploy","intro_on_current_branch":false},"20220701085523":{"version":20220701085523,"path":"db/post_migrate/20220701085523_schedule_index_on_events_for_contribution_analytics_optimization.rb","name":"ScheduleIndexOnEventsForContributionAnalyticsOptimization","type":"post_deploy","intro_on_current_branch":false},"20211115151704":{"version":20211115151704,"path":"db/post_migrate/20211115151704_add_index_on_projects_import_type_id.rb","name":"AddIndexOnProjectsImportTypeId","type":"post_deploy","intro_on_current_branch":false},"20220824114218":{"version":20220824114218,"path":"db/post_migrate/20220824114218_add_tmp_index_approval_merge_request_rules.rb","name":"AddTmpIndexApprovalMergeRequestRules","type":"post_deploy","intro_on_current_branch":false},"20220121214752":{"version":20220121214752,"path":"db/post_migrate/20220121214752_remove_projects_ci_stages_project_id_fk.rb","name":"RemoveProjectsCiStagesProjectIdFk","type":"post_deploy","intro_on_current_branch":false},"20210621164210":{"version":20210621164210,"path":"db/post_migrate/20210621164210_drop_remove_on_close_from_labels.rb","name":"DropRemoveOnCloseFromLabels","type":"post_deploy","intro_on_current_branch":false},"20210708130419":{"version":20210708130419,"path":"db/post_migrate/20210708130419_reschedule_merge_request_diff_users_background_migration.rb","name":"RescheduleMergeRequestDiffUsersBackgroundMigration","type":"post_deploy","intro_on_current_branch":false},"20220321025720":{"version":20220321025720,"path":"db/post_migrate/20220321025720_alter_constraint_remote_import_url.rb","name":"AlterConstraintRemoteImportUrl","type":"post_deploy","intro_on_current_branch":false},"20220316202640":{"version":20220316202640,"path":"db/post_migrate/20220316202640_populate_container_repositories_migration_plan.rb","name":"PopulateContainerRepositoriesMigrationPlan","type":"post_deploy","intro_on_current_branch":false},"20210812145010":{"version":20210812145010,"path":"db/post_migrate/20210812145010_reset_job_token_scope_enabled_again.rb","name":"ResetJobTokenScopeEnabledAgain","type":"post_deploy","intro_on_current_branch":false},"20210721174521":{"version":20210721174521,"path":"db/post_migrate/20210721174521_add_non_null_constraint_for_escalation_rule_on_pending_alert_escalations.rb","name":"AddNonNullConstraintForEscalationRuleOnPendingAlertEscalations","type":"post_deploy","intro_on_current_branch":false},"20210809143931":{"version":20210809143931,"path":"db/post_migrate/20210809143931_finalize_job_id_conversion_to_bigint_for_ci_job_artifacts.rb","name":"FinalizeJobIdConversionToBigintForCiJobArtifacts","type":"post_deploy","intro_on_current_branch":false},"20210915022415":{"version":20210915022415,"path":"db/post_migrate/20210915022415_cleanup_bigint_conversion_for_ci_builds.rb","name":"CleanupBigintConversionForCiBuilds","type":"post_deploy","intro_on_current_branch":false},"20210322115438":{"version":20210322115438,"path":"db/post_migrate/20210322115438_validate_not_null_constraint_on_gitlab_subscriptions_namespace_id.rb","name":"ValidateNotNullConstraintOnGitlabSubscriptionsNamespaceId","type":"post_deploy","intro_on_current_branch":false},"20211210140629":{"version":20211210140629,"path":"db/post_migrate/20211210140629_encrypt_static_object_token.rb","name":"EncryptStaticObjectToken","type":"post_deploy","intro_on_current_branch":false},"20220802132158":{"version":20220802132158,"path":"db/post_migrate/20220802132158_index_on_integration_type_new_id_when_active_and_has_group.rb","name":"IndexOnIntegrationTypeNewIdWhenActiveAndHasGroup","type":"post_deploy","intro_on_current_branch":false},"20220613095911":{"version":20220613095911,"path":"db/post_migrate/20220613095911_create_confidential_notes_index_on_id.rb","name":"CreateConfidentialNotesIndexOnId","type":"post_deploy","intro_on_current_branch":false},"20220116175851":{"version":20220116175851,"path":"db/post_migrate/20220116175851_add_author_index_to_design_management_versions.rb","name":"AddAuthorIndexToDesignManagementVersions","type":"post_deploy","intro_on_current_branch":false},"20220310095341":{"version":20220310095341,"path":"db/post_migrate/20220310095341_add_async_index_ci_job_artifacts_project_id_created_at.rb","name":"AddAsyncIndexCiJobArtifactsProjectIdCreatedAt","type":"post_deploy","intro_on_current_branch":false},"20210813151908":{"version":20210813151908,"path":"db/post_migrate/20210813151908_replace_external_wiki_triggers.rb","name":"ReplaceExternalWikiTriggers","type":"post_deploy","intro_on_current_branch":false},"20220328095848":{"version":20220328095848,"path":"db/post_migrate/20220328095848_delete_failed_reset_duplicate_ci_runners_token_migration_records.rb","name":"DeleteFailedResetDuplicateCiRunnersTokenMigrationRecords","type":"post_deploy","intro_on_current_branch":false},"20211028100303":{"version":20211028100303,"path":"db/post_migrate/20211028100303_tmp_index_for_delete_issue_merge_request_taggings_records.rb","name":"TmpIndexForDeleteIssueMergeRequestTaggingsRecords","type":"post_deploy","intro_on_current_branch":false},"20220525172001":{"version":20220525172001,"path":"db/post_migrate/20220525172001_migrate_cluster_integration_worker_queues.rb","name":"MigrateClusterIntegrationWorkerQueues","type":"post_deploy","intro_on_current_branch":false},"20211125120444":{"version":20211125120444,"path":"db/post_migrate/20211125120444_add_index_todos_project_id_user_id.rb","name":"AddIndexTodosProjectIdUserId","type":"post_deploy","intro_on_current_branch":false},"20211103184303":{"version":20211103184303,"path":"db/post_migrate/20211103184303_drop_runner_features_from_ci_builds_metadata.rb","name":"DropRunnerFeaturesFromCiBuildsMetadata","type":"post_deploy","intro_on_current_branch":false},"20211210173137":{"version":20211210173137,"path":"db/post_migrate/20211210173137_remove_vulnerability_finding_links_again.rb","name":"RemoveVulnerabilityFindingLinksAgain","type":"post_deploy","intro_on_current_branch":false},"20211217145923":{"version":20211217145923,"path":"db/post_migrate/20211217145923_add_index_to_events_on_author_id_and_action_and_id.rb","name":"AddIndexToEventsOnAuthorIdAndActionAndId","type":"post_deploy","intro_on_current_branch":false},"20220530074027":{"version":20220530074027,"path":"db/post_migrate/20220530074027_add_project_id_index_to_job_artifacts.rb","name":"AddProjectIdIndexToJobArtifacts","type":"post_deploy","intro_on_current_branch":false},"20220121214753":{"version":20220121214753,"path":"db/post_migrate/20220121214753_re_remove_projects_ci_stages_project_id_fk.rb","name":"ReRemoveProjectsCiStagesProjectIdFk","type":"post_deploy","intro_on_current_branch":false},"20220620151740":{"version":20220620151740,"path":"db/post_migrate/20220620151740_add_indexes_issues_on_project_id_and_closed_at.rb","name":"AddIndexesIssuesOnProjectIdAndClosedAt","type":"post_deploy","intro_on_current_branch":false},"20220524074947":{"version":20220524074947,"path":"db/post_migrate/20220524074947_finalize_backfill_null_note_discussion_ids.rb","name":"FinalizeBackfillNullNoteDiscussionIds","type":"post_deploy","intro_on_current_branch":false},"20220706065245":{"version":20220706065245,"path":"db/post_migrate/20220706065245_remove_foreign_key_in_clusters_applications_elastic_stacks.rb","name":"RemoveForeignKeyInClustersApplicationsElasticStacks","type":"post_deploy","intro_on_current_branch":false},"20220112230642":{"version":20220112230642,"path":"db/post_migrate/20220112230642_remove_projects_ci_unit_tests_project_id_fk.rb","name":"RemoveProjectsCiUnitTestsProjectIdFk","type":"post_deploy","intro_on_current_branch":false},"20211229023654":{"version":20211229023654,"path":"db/post_migrate/20211229023654_add_async_index_ci_job_artifacts_project_id_file_type.rb","name":"AddAsyncIndexCiJobArtifactsProjectIdFileType","type":"post_deploy","intro_on_current_branch":false},"20210513155635":{"version":20210513155635,"path":"db/post_migrate/20210513155635_remove_temporary_package_index_for_nuget_data_migration.rb","name":"RemoveTemporaryPackageIndexForNugetDataMigration","type":"post_deploy","intro_on_current_branch":false},"20210426094549":{"version":20210426094549,"path":"db/post_migrate/20210426094549_backfill_ci_builds_for_bigint_conversion.rb","name":"BackfillCiBuildsForBigintConversion","type":"post_deploy","intro_on_current_branch":false},"20220105020514":{"version":20220105020514,"path":"db/post_migrate/20220105020514_remove_ci_minutes_additional_packs_namespace_id_foreign_key_constraint.rb","name":"RemoveCiMinutesAdditionalPacksNamespaceIdForeignKeyConstraint","type":"post_deploy","intro_on_current_branch":false},"20220516054011":{"version":20220516054011,"path":"db/post_migrate/20220516054011_schedule_backfill_project_member_namespace_id.rb","name":"ScheduleBackfillProjectMemberNamespaceId","type":"post_deploy","intro_on_current_branch":false},"20220224000000":{"version":20220224000000,"path":"db/post_migrate/20220224000000_async_build_trace_expire_at_index.rb","name":"AsyncBuildTraceExpireAtIndex","type":"post_deploy","intro_on_current_branch":false},"20220707075300":{"version":20220707075300,"path":"db/post_migrate/20220707075300_reschedule_backfill_imported_issue_search_data.rb","name":"RescheduleBackfillImportedIssueSearchData","type":"post_deploy","intro_on_current_branch":false},"20220315171129":{"version":20220315171129,"path":"db/post_migrate/20220315171129_cleanup_draft_data_from_faulty_regex.rb","name":"CleanupDraftDataFromFaultyRegex","type":"post_deploy","intro_on_current_branch":false},"20220606060825":{"version":20220606060825,"path":"db/post_migrate/20220606060825_set_on_delete_cascade_on_namespace_id_on_routes_table.rb","name":"SetOnDeleteCascadeOnNamespaceIdOnRoutesTable","type":"post_deploy","intro_on_current_branch":false},"20220809002011":{"version":20220809002011,"path":"db/post_migrate/20220809002011_schedule_destroy_invalid_group_members.rb","name":"ScheduleDestroyInvalidGroupMembers","type":"post_deploy","intro_on_current_branch":false},"20220127132201":{"version":20220127132201,"path":"db/post_migrate/20220127132201_cleanup_backfill_ci_project_mirrors.rb","name":"CleanupBackfillCiProjectMirrors","type":"post_deploy","intro_on_current_branch":false},"20210923133143":{"version":20210923133143,"path":"db/post_migrate/20210923133143_remove_redundant_taggings_index.rb","name":"RemoveRedundantTaggingsIndex","type":"post_deploy","intro_on_current_branch":false},"20220822090656":{"version":20220822090656,"path":"db/post_migrate/20220822090656_drop_build_coverage_regex_from_project.rb","name":"DropBuildCoverageRegexFromProject","type":"post_deploy","intro_on_current_branch":false},"20220212120735":{"version":20220212120735,"path":"db/post_migrate/20220212120735_schedule_fix_incorrect_max_seats_used2.rb","name":"ScheduleFixIncorrectMaxSeatsUsed2","type":"post_deploy","intro_on_current_branch":false},"20220412143551":{"version":20220412143551,"path":"db/post_migrate/20220412143551_add_partial_index_on_unencrypted_integrations.rb","name":"AddPartialIndexOnUnencryptedIntegrations","type":"post_deploy","intro_on_current_branch":false},"20220607082910":{"version":20220607082910,"path":"db/post_migrate/20220607082910_add_sync_tmp_index_for_potentially_misassociated_vulnerability_occurrences.rb","name":"AddSyncTmpIndexForPotentiallyMisassociatedVulnerabilityOccurrences","type":"post_deploy","intro_on_current_branch":false},"20220630050050":{"version":20220630050050,"path":"db/post_migrate/20220630050050_index_vulnerability_reads_on_casted_cluster_agent_id_full.rb","name":"IndexVulnerabilityReadsOnCastedClusterAgentIdFull","type":"post_deploy","intro_on_current_branch":false},"20211119085036":{"version":20211119085036,"path":"db/post_migrate/20211119085036_add_text_limit_to_job_artifact_original_filename.rb","name":"AddTextLimitToJobArtifactOriginalFilename","type":"post_deploy","intro_on_current_branch":false},"20210621223242":{"version":20210621223242,"path":"db/post_migrate/20210621223242_finalize_rename_services_to_integrations.rb","name":"FinalizeRenameServicesToIntegrations","type":"post_deploy","intro_on_current_branch":false},"20211018101552":{"version":20211018101552,"path":"db/post_migrate/20211018101552_add_index_to_tmp_project_id_column_on_namespaces_table.rb","name":"AddIndexToTmpProjectIdColumnOnNamespacesTable","type":"post_deploy","intro_on_current_branch":false},"20210902144144":{"version":20210902144144,"path":"db/post_migrate/20210902144144_drop_temporary_columns_and_triggers_for_ci_build_needs.rb","name":"DropTemporaryColumnsAndTriggersForCiBuildNeeds","type":"post_deploy","intro_on_current_branch":false},"20220415124802":{"version":20220415124802,"path":"db/post_migrate/20220415124802_remove_job_artifact_deprecated_geo_fields.rb","name":"RemoveJobArtifactDeprecatedGeoFields","type":"post_deploy","intro_on_current_branch":false},"20210329102724":{"version":20210329102724,"path":"db/post_migrate/20210329102724_add_new_trail_plans.rb","name":"AddNewTrailPlans","type":"post_deploy","intro_on_current_branch":false},"20220530170915":{"version":20220530170915,"path":"db/post_migrate/20220530170915_add_index_for_vulnerability_state_transition.rb","name":"AddIndexForVulnerabilityStateTransition","type":"post_deploy","intro_on_current_branch":false},"20220722084543":{"version":20220722084543,"path":"db/post_migrate/20220722084543_schedule_disable_legacy_open_source_license_for_no_issues_no_repo_projects.rb","name":"ScheduleDisableLegacyOpenSourceLicenseForNoIssuesNoRepoProjects","type":"post_deploy","intro_on_current_branch":false},"20210519132129":{"version":20210519132129,"path":"db/post_migrate/20210519132129_backfill_ci_builds_metadata_for_bigint_conversion.rb","name":"BackfillCiBuildsMetadataForBigintConversion","type":"post_deploy","intro_on_current_branch":false},"20211011104843":{"version":20211011104843,"path":"db/post_migrate/20211011104843_add_new_loose_fk_index.rb","name":"AddNewLooseFkIndex","type":"post_deploy","intro_on_current_branch":false},"20210707210916":{"version":20210707210916,"path":"db/post_migrate/20210707210916_finalize_ci_stages_bigint_conversion.rb","name":"FinalizeCiStagesBigintConversion","type":"post_deploy","intro_on_current_branch":false},"20210922021816":{"version":20210922021816,"path":"db/post_migrate/20210922021816_drop_int4_columns_for_ci_job_artifacts.rb","name":"DropInt4ColumnsForCiJobArtifacts","type":"post_deploy","intro_on_current_branch":false},"20220923060226":{"version":20220923060226,"path":"db/post_migrate/20220923060226_remove_tmp_index_system_note_metadata_on_attention_request_actions.rb","name":"RemoveTmpIndexSystemNoteMetadataOnAttentionRequestActions","type":"post_deploy","intro_on_current_branch":false},"20210730104800":{"version":20210730104800,"path":"db/post_migrate/20210730104800_schedule_extract_project_topics_into_separate_table.rb","name":"ScheduleExtractProjectTopicsIntoSeparateTable","type":"post_deploy","intro_on_current_branch":false},"20210908132335":{"version":20210908132335,"path":"db/post_migrate/20210908132335_disable_job_token_scope_when_unused.rb","name":"DisableJobTokenScopeWhenUnused","type":"post_deploy","intro_on_current_branch":false},"20220630085003":{"version":20220630085003,"path":"db/post_migrate/20220630085003_drop_project_successfull_pages_deploy_index_from_ci_builds.rb","name":"DropProjectSuccessfullPagesDeployIndexFromCiBuilds","type":"post_deploy","intro_on_current_branch":false},"20210621223000":{"version":20210621223000,"path":"db/post_migrate/20210621223000_steal_background_jobs_that_reference_services.rb","name":"StealBackgroundJobsThatReferenceServices","type":"post_deploy","intro_on_current_branch":false},"20220606082910":{"version":20220606082910,"path":"db/post_migrate/20220606082910_add_tmp_index_for_potentially_misassociated_vulnerability_occurrences.rb","name":"AddTmpIndexForPotentiallyMisassociatedVulnerabilityOccurrences","type":"post_deploy","intro_on_current_branch":false},"20220826175058":{"version":20220826175058,"path":"db/post_migrate/20220826175058_fully_remove_temporary_job_trace_index.rb","name":"FullyRemoveTemporaryJobTraceIndex","type":"post_deploy","intro_on_current_branch":false},"20211209094222":{"version":20211209094222,"path":"db/post_migrate/20211209094222_track_merge_requests_deletes.rb","name":"TrackMergeRequestsDeletes","type":"post_deploy","intro_on_current_branch":false},"20220309084954":{"version":20220309084954,"path":"db/post_migrate/20220309084954_remove_leftover_external_pull_request_deletions.rb","name":"RemoveLeftoverExternalPullRequestDeletions","type":"post_deploy","intro_on_current_branch":false},"20211220120402":{"version":20211220120402,"path":"db/post_migrate/20211220120402_add_index_on_ci_pipelines_user_id_id_failure_reason.rb","name":"AddIndexOnCiPipelinesUserIdIdFailureReason","type":"post_deploy","intro_on_current_branch":false},"20211006060436":{"version":20211006060436,"path":"db/post_migrate/20211006060436_schedule_populate_topics_total_projects_count_cache.rb","name":"SchedulePopulateTopicsTotalProjectsCountCache","type":"post_deploy","intro_on_current_branch":false},"20211117084814":{"version":20211117084814,"path":"db/post_migrate/20211117084814_migrate_remaining_u2f_registrations.rb","name":"MigrateRemainingU2fRegistrations","type":"post_deploy","intro_on_current_branch":false},"20210526160133":{"version":20210526160133,"path":"db/post_migrate/20210526160133_remove_segment_selections_table.rb","name":"RemoveSegmentSelectionsTable","type":"post_deploy","intro_on_current_branch":false},"20220912110433":{"version":20220912110433,"path":"db/post_migrate/20220912110433_prepare_create_internal_notes_index_on_id.rb","name":"PrepareCreateInternalNotesIndexOnId","type":"post_deploy","intro_on_current_branch":false},"20211210140000":{"version":20211210140000,"path":"db/post_migrate/20211210140000_add_temporary_static_object_token_index.rb","name":"AddTemporaryStaticObjectTokenIndex","type":"post_deploy","intro_on_current_branch":false},"20220808072054":{"version":20220808072054,"path":"db/post_migrate/20220808072054_prepare_index_removal_security_findings.rb","name":"PrepareIndexRemovalSecurityFindings","type":"post_deploy","intro_on_current_branch":false},"20220204110725":{"version":20220204110725,"path":"db/post_migrate/20220204110725_backfill_cycle_analytics_aggregations.rb","name":"BackfillCycleAnalyticsAggregations","type":"post_deploy","intro_on_current_branch":false},"20210818185845":{"version":20210818185845,"path":"db/post_migrate/20210818185845_backfill_projects_with_coverage.rb","name":"BackfillProjectsWithCoverage","type":"post_deploy","intro_on_current_branch":false},"20220919041604":{"version":20220919041604,"path":"db/post_migrate/20220919041604_drop_unused_fields_from_merge_request_reviewers.rb","name":"DropUnusedFieldsFromMergeRequestReviewers","type":"post_deploy","intro_on_current_branch":false},"20211018101852":{"version":20211018101852,"path":"db/post_migrate/20211018101852_add_fk_to_tmp_project_id_column_on_namespaces_table.rb","name":"AddFkToTmpProjectIdColumnOnNamespacesTable","type":"post_deploy","intro_on_current_branch":false},"20211028100843":{"version":20211028100843,"path":"db/post_migrate/20211028100843_delete_issue_merge_request_taggings_records.rb","name":"DeleteIssueMergeRequestTaggingsRecords","type":"post_deploy","intro_on_current_branch":false},"20220519045133":{"version":20220519045133,"path":"db/post_migrate/20220519045133_bulk_insert_cluster_enabled_grants.rb","name":"BulkInsertClusterEnabledGrants","type":"post_deploy","intro_on_current_branch":false},"20220715190612":{"version":20220715190612,"path":"db/post_migrate/20220715190612_drop_index_on_security_findings_uuid_and_scan_id.rb","name":"DropIndexOnSecurityFindingsUuidAndScanId","type":"post_deploy","intro_on_current_branch":false},"20220223124428":{"version":20220223124428,"path":"db/post_migrate/20220223124428_schedule_merge_topics_with_same_name.rb","name":"ScheduleMergeTopicsWithSameName","type":"post_deploy","intro_on_current_branch":false},"20220425121435":{"version":20220425121435,"path":"db/post_migrate/20220425121435_backfill_integrations_enable_ssl_verification.rb","name":"BackfillIntegrationsEnableSslVerification","type":"post_deploy","intro_on_current_branch":false},"20210611080951":{"version":20210611080951,"path":"db/post_migrate/20210611080951_fix_missing_traversal_ids.rb","name":"FixMissingTraversalIds","type":"post_deploy","intro_on_current_branch":false},"20210706212710":{"version":20210706212710,"path":"db/post_migrate/20210706212710_finalize_ci_job_artifacts_bigint_conversion.rb","name":"FinalizeCiJobArtifactsBigintConversion","type":"post_deploy","intro_on_current_branch":false},"20220822071909":{"version":20220822071909,"path":"db/post_migrate/20220822071909_remove_other_role_from_user_details.rb","name":"RemoveOtherRoleFromUserDetails","type":"post_deploy","intro_on_current_branch":false},"20220707160921":{"version":20220707160921,"path":"db/post_migrate/20220707160921_cleanup_slack_integration_service_id.rb","name":"CleanupSlackIntegrationServiceId","type":"post_deploy","intro_on_current_branch":false},"20220307203459":{"version":20220307203459,"path":"db/post_migrate/20220307203459_rename_user_email_lookup_limit_setting_to_search_settings_cleanup.rb","name":"RenameUserEmailLookupLimitSettingToSearchSettingsCleanup","type":"post_deploy","intro_on_current_branch":false},"20210708011426":{"version":20210708011426,"path":"db/post_migrate/20210708011426_finalize_ci_builds_metadata_bigint_conversion.rb","name":"FinalizeCiBuildsMetadataBigintConversion","type":"post_deploy","intro_on_current_branch":false},"20220315211043":{"version":20220315211043,"path":"db/post_migrate/20220315211043_add_index_to_vulnerability_reads.rb","name":"AddIndexToVulnerabilityReads","type":"post_deploy","intro_on_current_branch":false},"20210602164044":{"version":20210602164044,"path":"db/post_migrate/20210602164044_schedule_latest_pipeline_id_population.rb","name":"ScheduleLatestPipelineIdPopulation","type":"post_deploy","intro_on_current_branch":false},"20220830061704":{"version":20220830061704,"path":"db/post_migrate/20220830061704_orphaned_invited_members_cleanup.rb","name":"OrphanedInvitedMembersCleanup","type":"post_deploy","intro_on_current_branch":false},"20220113111440":{"version":20220113111440,"path":"db/post_migrate/20220113111440_schedule_fix_incorrect_max_seats_used.rb","name":"ScheduleFixIncorrectMaxSeatsUsed","type":"post_deploy","intro_on_current_branch":false},"20211027043206":{"version":20211027043206,"path":"db/post_migrate/20211027043206_track_ci_pipeline_deletions.rb","name":"TrackCiPipelineDeletions","type":"post_deploy","intro_on_current_branch":false},"20220615154500":{"version":20220615154500,"path":"db/post_migrate/20220615154500_schedule_backfill_cluster_agents_has_vulnerabilities.rb","name":"ScheduleBackfillClusterAgentsHasVulnerabilities","type":"post_deploy","intro_on_current_branch":false},"20220322132242":{"version":20220322132242,"path":"db/post_migrate/20220322132242_update_pages_onboarding_state.rb","name":"UpdatePagesOnboardingState","type":"post_deploy","intro_on_current_branch":false},"20220726225114":{"version":20220726225114,"path":"db/post_migrate/20220726225114_remove_tmp_index_group_membership_namespace_id_column.rb","name":"RemoveTmpIndexGroupMembershipNamespaceIdColumn","type":"post_deploy","intro_on_current_branch":false},"20220525141540":{"version":20220525141540,"path":"db/post_migrate/20220525141540_migrate_project_service_worker_queue.rb","name":"MigrateProjectServiceWorkerQueue","type":"post_deploy","intro_on_current_branch":false},"20220901071355":{"version":20220901071355,"path":"db/post_migrate/20220901071355_cleanup_attention_request_user_callouts.rb","name":"CleanupAttentionRequestUserCallouts","type":"post_deploy","intro_on_current_branch":false},"20220302114046":{"version":20220302114046,"path":"db/post_migrate/20220302114046_backfill_group_features.rb","name":"BackfillGroupFeatures","type":"post_deploy","intro_on_current_branch":false},"20220921111840":{"version":20220921111840,"path":"db/post_migrate/20220921111840_remove_and_add_ci_instance_variables_raw_with_new_default.rb","name":"RemoveAndAddCiInstanceVariablesRawWithNewDefault","type":"post_deploy","intro_on_current_branch":false},"20211028123412":{"version":20211028123412,"path":"db/post_migrate/20211028123412_add_async_index_on_events_using_btree_created_at_id.rb","name":"AddAsyncIndexOnEventsUsingBtreeCreatedAtId","type":"post_deploy","intro_on_current_branch":false},"20211103141403":{"version":20211103141403,"path":"db/post_migrate/20211103141403_remove_propagate_service_template_worker.rb","name":"RemovePropagateServiceTemplateWorker","type":"post_deploy","intro_on_current_branch":false},"20220404183350":{"version":20220404183350,"path":"db/post_migrate/20220404183350_add_forbidden_state_index_to_users.rb","name":"AddForbiddenStateIndexToUsers","type":"post_deploy","intro_on_current_branch":false},"20220616092541":{"version":20220616092541,"path":"db/post_migrate/20220616092541_prepare_index_issues_on_project_id_and_closed_at.rb","name":"PrepareIndexIssuesOnProjectIdAndClosedAt","type":"post_deploy","intro_on_current_branch":false},"20210722110515":{"version":20210722110515,"path":"db/post_migrate/20210722110515_revert_backfill_ci_build_trace_sections_for_bigint_conversion.rb","name":"RevertBackfillCiBuildTraceSectionsForBigintConversion","type":"post_deploy","intro_on_current_branch":false},"20220127112243":{"version":20220127112243,"path":"db/post_migrate/20220127112243_add_index_to_merge_request_assignees_state.rb","name":"AddIndexToMergeRequestAssigneesState","type":"post_deploy","intro_on_current_branch":false},"20220407163559":{"version":20220407163559,"path":"db/post_migrate/20220407163559_schedule_purging_stale_security_scans.rb","name":"SchedulePurgingStaleSecurityScans","type":"post_deploy","intro_on_current_branch":false},"20220607140222":{"version":20220607140222,"path":"db/post_migrate/20220607140222_remove_invalid_integrations.rb","name":"RemoveInvalidIntegrations","type":"post_deploy","intro_on_current_branch":false},"20210727113447":{"version":20210727113447,"path":"db/post_migrate/20210727113447_backfill_integrations_type_new.rb","name":"BackfillIntegrationsTypeNew","type":"post_deploy","intro_on_current_branch":false},"20220722110026":{"version":20220722110026,"path":"db/post_migrate/20220722110026_reschedule_set_legacy_open_source_license_available_for_non_public_projects.rb","name":"RescheduleSetLegacyOpenSourceLicenseAvailableForNonPublicProjects","type":"post_deploy","intro_on_current_branch":false},"20220906212931":{"version":20220906212931,"path":"db/post_migrate/20220906212931_add_partial_index_for_ci_pipeline_artifacts_unlocked_with_expire_at.rb","name":"AddPartialIndexForCiPipelineArtifactsUnlockedWithExpireAt","type":"post_deploy","intro_on_current_branch":false},"20220323130000":{"version":20220323130000,"path":"db/post_migrate/20220323130000_add_temp_index_on_null_project_namespace_ids.rb","name":"AddTempIndexOnNullProjectNamespaceIds","type":"post_deploy","intro_on_current_branch":false},"20220901071310":{"version":20220901071310,"path":"db/post_migrate/20220901071310_add_tmp_index_user_callouts_on_attention_request_feature_names.rb","name":"AddTmpIndexUserCalloutsOnAttentionRequestFeatureNames","type":"post_deploy","intro_on_current_branch":false},"20220905090339":{"version":20220905090339,"path":"db/post_migrate/20220905090339_reset_attention_requested_merge_requests_reviewers_state_to_unreviewed.rb","name":"ResetAttentionRequestedMergeRequestsReviewersStateToUnreviewed","type":"post_deploy","intro_on_current_branch":false},"20210824102624":{"version":20210824102624,"path":"db/post_migrate/20210824102624_add_project_namespace_index_to_project.rb","name":"AddProjectNamespaceIndexToProject","type":"post_deploy","intro_on_current_branch":false},"20220902111016":{"version":20220902111016,"path":"db/post_migrate/20220902111016_delete_null_records_from_board_group_recent_visits.rb","name":"DeleteNullRecordsFromBoardGroupRecentVisits","type":"post_deploy","intro_on_current_branch":false},"20211102103127":{"version":20211102103127,"path":"db/post_migrate/20211102103127_add_temp_index_to_vulnerability_occurrences.rb","name":"AddTempIndexToVulnerabilityOccurrences","type":"post_deploy","intro_on_current_branch":false},"20210402005225":{"version":20210402005225,"path":"db/post_migrate/20210402005225_add_source_and_level_index_on_notification_settings.rb","name":"AddSourceAndLevelIndexOnNotificationSettings","type":"post_deploy","intro_on_current_branch":false},"20210427045711":{"version":20210427045711,"path":"db/post_migrate/20210427045711_backfill_ci_build_trace_chunks_for_bigint_conversion.rb","name":"BackfillCiBuildTraceChunksForBigintConversion","type":"post_deploy","intro_on_current_branch":false},"20211022113000":{"version":20211022113000,"path":"db/post_migrate/20211022113000_drop_index_security_ci_builds_on_name_and_id_parser_features_broken.rb","name":"DropIndexSecurityCiBuildsOnNameAndIdParserFeaturesBroken","type":"post_deploy","intro_on_current_branch":false},"20220125084348":{"version":20220125084348,"path":"db/post_migrate/20220125084348_remove_ci_pipelines_vulnerability_feedback_pipeline_id_fk.rb","name":"RemoveCiPipelinesVulnerabilityFeedbackPipelineIdFk","type":"post_deploy","intro_on_current_branch":false},"20211202145237":{"version":20211202145237,"path":"db/post_migrate/20211202145237_add_todos_project_and_id_index.rb","name":"AddTodosProjectAndIdIndex","type":"post_deploy","intro_on_current_branch":false},"20211018152654":{"version":20211018152654,"path":"db/post_migrate/20211018152654_schedule_remove_duplicate_vulnerabilities_findings3.rb","name":"ScheduleRemoveDuplicateVulnerabilitiesFindings3","type":"post_deploy","intro_on_current_branch":false},"20220705180843":{"version":20220705180843,"path":"db/post_migrate/20220705180843_validate_requirements_issue_id_not_null.rb","name":"ValidateRequirementsIssueIdNotNull","type":"post_deploy","intro_on_current_branch":false},"20220502015011":{"version":20220502015011,"path":"db/post_migrate/20220502015011_clean_up_fix_merge_request_diff_commit_users.rb","name":"CleanUpFixMergeRequestDiffCommitUsers","type":"post_deploy","intro_on_current_branch":false},"20220422121443":{"version":20220422121443,"path":"db/post_migrate/20220422121443_add_async_index_for_group_activity_events.rb","name":"AddAsyncIndexForGroupActivityEvents","type":"post_deploy","intro_on_current_branch":false},"20220602111923":{"version":20220602111923,"path":"db/post_migrate/20220602111923_prepare_index_for_open_issues_count.rb","name":"PrepareIndexForOpenIssuesCount","type":"post_deploy","intro_on_current_branch":false},"20220914093408":{"version":20220914093408,"path":"db/post_migrate/20220914093408_add_unique_id_partition_id_index_to_ci_build_metadata.rb","name":"AddUniqueIdPartitionIdIndexToCiBuildMetadata","type":"post_deploy","intro_on_current_branch":false},"20211217120000":{"version":20211217120000,"path":"db/post_migrate/20211217120000_modify_kubernetes_resource_location_index_to_vulnerability_occurrences.rb","name":"ModifyKubernetesResourceLocationIndexToVulnerabilityOccurrences","type":"post_deploy","intro_on_current_branch":false},"20220920214524":{"version":20220920214524,"path":"db/post_migrate/20220920214524_remove_task_system_note_rename_temp_index.rb","name":"RemoveTaskSystemNoteRenameTempIndex","type":"post_deploy","intro_on_current_branch":false},"20220208115439":{"version":20220208115439,"path":"db/post_migrate/20220208115439_start_backfill_ci_queuing_tables.rb","name":"StartBackfillCiQueuingTables","type":"post_deploy","intro_on_current_branch":false},"20211209203821":{"version":20211209203821,"path":"db/post_migrate/20211209203821_convert_stringified_raw_metadata_hash_to_json.rb","name":"ConvertStringifiedRawMetadataHashToJson","type":"post_deploy","intro_on_current_branch":false},"20220708100508":{"version":20220708100508,"path":"db/post_migrate/20220708100508_drop_index_on_ci_runner_versions_on_status.rb","name":"DropIndexOnCiRunnerVersionsOnStatus","type":"post_deploy","intro_on_current_branch":false},"20220201193033":{"version":20220201193033,"path":"db/post_migrate/20220201193033_add_unique_index_to_vulnerability_finding_links_with_truncate.rb","name":"AddUniqueIndexToVulnerabilityFindingLinksWithTruncate","type":"post_deploy","intro_on_current_branch":false},"20220802114351":{"version":20220802114351,"path":"db/post_migrate/20220802114351_reschedule_backfill_container_registry_size_into_project_statistics.rb","name":"RescheduleBackfillContainerRegistrySizeIntoProjectStatistics","type":"post_deploy","intro_on_current_branch":false},"20220526044516":{"version":20220526044516,"path":"db/post_migrate/20220526044516_remove_geo_lfs_object_deleted_events_table.rb","name":"RemoveGeoLfsObjectDeletedEventsTable","type":"post_deploy","intro_on_current_branch":false},"20220523171107":{"version":20220523171107,"path":"db/post_migrate/20220523171107_drop_deploy_tokens_token_column.rb","name":"DropDeployTokensTokenColumn","type":"post_deploy","intro_on_current_branch":false},"20220331074722":{"version":20220331074722,"path":"db/post_migrate/20220331074722_add_notes_null_discussion_id_temp_index_async.rb","name":"AddNotesNullDiscussionIdTempIndexAsync","type":"post_deploy","intro_on_current_branch":false},"20220110224913":{"version":20220110224913,"path":"db/post_migrate/20220110224913_remove_dast_scanner_profiles_builds_ci_build_id_fk.rb","name":"RemoveDastScannerProfilesBuildsCiBuildIdFk","type":"post_deploy","intro_on_current_branch":false},"20211207125331":{"version":20211207125331,"path":"db/post_migrate/20211207125331_remove_jobs_for_recalculate_vulnerabilities_occurrences_uuid.rb","name":"RemoveJobsForRecalculateVulnerabilitiesOccurrencesUuid","type":"post_deploy","intro_on_current_branch":false},"20220915192521":{"version":20220915192521,"path":"db/post_migrate/20220915192521_prepare_async_trigram_index_for_vulnerability_reads_container_images.rb","name":"PrepareAsyncTrigramIndexForVulnerabilityReadsContainerImages","type":"post_deploy","intro_on_current_branch":false},"20220124180705":{"version":20220124180705,"path":"db/post_migrate/20220124180705_re_remove_projects_ci_builds_metadata_project_id_fk.rb","name":"ReRemoveProjectsCiBuildsMetadataProjectIdFk","type":"post_deploy","intro_on_current_branch":false},"20220919023208":{"version":20220919023208,"path":"db/post_migrate/20220919023208_drop_unused_fields_from_merge_request_assignees.rb","name":"DropUnusedFieldsFromMergeRequestAssignees","type":"post_deploy","intro_on_current_branch":false},"20220131000000":{"version":20220131000000,"path":"db/post_migrate/20220131000000_index_job_artifacts_on_trace_type_and_expire_at.rb","name":"IndexJobArtifactsOnTraceTypeAndExpireAt","type":"post_deploy","intro_on_current_branch":false},"20220902111038":{"version":20220902111038,"path":"db/post_migrate/20220902111038_delete_null_records_from_board_project_recent_visits.rb","name":"DeleteNullRecordsFromBoardProjectRecentVisits","type":"post_deploy","intro_on_current_branch":false},"20220815061621":{"version":20220815061621,"path":"db/post_migrate/20220815061621_rename_web_hooks_service_id_to_integration_id.rb","name":"RenameWebHooksServiceIdToIntegrationId","type":"post_deploy","intro_on_current_branch":false},"20210906100316":{"version":20210906100316,"path":"db/post_migrate/20210906100316_drop_temporary_columns_and_triggers_for_ci_build_trace_chunks.rb","name":"DropTemporaryColumnsAndTriggersForCiBuildTraceChunks","type":"post_deploy","intro_on_current_branch":false},"20220715163254":{"version":20220715163254,"path":"db/post_migrate/20220715163254_update_notes_in_past.rb","name":"UpdateNotesInPast","type":"post_deploy","intro_on_current_branch":false},"20220617123105":{"version":20220617123105,"path":"db/post_migrate/20220617123105_drop_index_on_projects_on_runners_token.rb","name":"DropIndexOnProjectsOnRunnersToken","type":"post_deploy","intro_on_current_branch":false},"20220531233600":{"version":20220531233600,"path":"db/post_migrate/20220531233600_remove_sse_usage_data_from_redis.rb","name":"RemoveSseUsageDataFromRedis","type":"post_deploy","intro_on_current_branch":false},"20220627090231":{"version":20220627090231,"path":"db/post_migrate/20220627090231_schedule_disable_legacy_open_source_license_for_inactive_public_projects.rb","name":"ScheduleDisableLegacyOpenSourceLicenseForInactivePublicProjects","type":"post_deploy","intro_on_current_branch":false},"20211012143815":{"version":20211012143815,"path":"db/post_migrate/20211012143815_remove_merge_request_diff_commit_columns.rb","name":"RemoveMergeRequestDiffCommitColumns","type":"post_deploy","intro_on_current_branch":false},"20220504083348":{"version":20220504083348,"path":"db/post_migrate/20220504083348_add_indexes_for_primary_email_post_regression_cleanup_migration.rb","name":"AddIndexesForPrimaryEmailPostRegressionCleanupMigration","type":"post_deploy","intro_on_current_branch":false},"20210606143426":{"version":20210606143426,"path":"db/post_migrate/20210606143426_add_index_for_container_registry_access_level.rb","name":"AddIndexForContainerRegistryAccessLevel","type":"post_deploy","intro_on_current_branch":false},"20220505193512":{"version":20220505193512,"path":"db/post_migrate/20220505193512_add_not_null_constraint_to_issues_work_item_type.rb","name":"AddNotNullConstraintToIssuesWorkItemType","type":"post_deploy","intro_on_current_branch":false},"20220325050642":{"version":20220325050642,"path":"db/post_migrate/20220325050642_drop_integrations_template_column.rb","name":"DropIntegrationsTemplateColumn","type":"post_deploy","intro_on_current_branch":false},"20220816075638":{"version":20220816075638,"path":"db/post_migrate/20220816075638_drop_uuid_and_id_index_from_security_findings.rb","name":"DropUuidAndIdIndexFromSecurityFindings","type":"post_deploy","intro_on_current_branch":false},"20220825061250":{"version":20220825061250,"path":"db/post_migrate/20220825061250_drop_tmp_index_todos_attention_request_action_idx.rb","name":"DropTmpIndexTodosAttentionRequestActionIdx","type":"post_deploy","intro_on_current_branch":false},"20211220123956":{"version":20211220123956,"path":"db/post_migrate/20211220123956_update_invalid_member_states.rb","name":"UpdateInvalidMemberStates","type":"post_deploy","intro_on_current_branch":false},"20220119143130":{"version":20220119143130,"path":"db/post_migrate/20220119143130_remove_projects_ci_sources_pipelines_source_project_id_fk.rb","name":"RemoveProjectsCiSourcesPipelinesSourceProjectIdFk","type":"post_deploy","intro_on_current_branch":false},"20220124221521":{"version":20220124221521,"path":"db/post_migrate/20220124221521_remove_projects_ci_project_monthly_usages_project_id_fk.rb","name":"RemoveProjectsCiProjectMonthlyUsagesProjectIdFk","type":"post_deploy","intro_on_current_branch":false},"20220803042352":{"version":20220803042352,"path":"db/post_migrate/20220803042352_cleanup_mr_attention_request_todos.rb","name":"CleanupMrAttentionRequestTodos","type":"post_deploy","intro_on_current_branch":false},"20220916065418":{"version":20220916065418,"path":"db/post_migrate/20220916065418_add_index_id_partition_id_to_ci_builds_metadata.rb","name":"AddIndexIdPartitionIdToCiBuildsMetadata","type":"post_deploy","intro_on_current_branch":false},"20211112113300":{"version":20211112113300,"path":"db/post_migrate/20211112113300_remove_ci_pipeline_chat_data_fk_on_chat_names.rb","name":"RemoveCiPipelineChatDataFkOnChatNames","type":"post_deploy","intro_on_current_branch":false},"20220801144713":{"version":20220801144713,"path":"db/post_migrate/20220801144713_add_partial_trigram_index_for_issue_title.rb","name":"AddPartialTrigramIndexForIssueTitle","type":"post_deploy","intro_on_current_branch":false},"20211018123316":{"version":20211018123316,"path":"db/post_migrate/20211018123316_remove_not_null_constraint_and_default_for_public_email.rb","name":"RemoveNotNullConstraintAndDefaultForPublicEmail","type":"post_deploy","intro_on_current_branch":false},"20220329175119":{"version":20220329175119,"path":"db/post_migrate/20220329175119_remove_leftover_ci_job_artifact_deletions.rb","name":"RemoveLeftoverCiJobArtifactDeletions","type":"post_deploy","intro_on_current_branch":false},"20210303121224":{"version":20210303121224,"path":"db/post_migrate/20210303121224_update_gitlab_subscriptions_start_at_post_eoa.rb","name":"UpdateGitlabSubscriptionsStartAtPostEoa","type":"post_deploy","intro_on_current_branch":false},"20220712131533":{"version":20220712131533,"path":"db/post_migrate/20220712131533_cleanup_issue_tracker_data_service_id.rb","name":"CleanupIssueTrackerDataServiceId","type":"post_deploy","intro_on_current_branch":false},"20220907122648":{"version":20220907122648,"path":"db/post_migrate/20220907122648_populate_security_orchestration_policy_configuration_id.rb","name":"PopulateSecurityOrchestrationPolicyConfigurationId","type":"post_deploy","intro_on_current_branch":false},"20210409185531":{"version":20210409185531,"path":"db/post_migrate/20210409185531_remove_members_index_on_user_id.rb","name":"RemoveMembersIndexOnUserId","type":"post_deploy","intro_on_current_branch":false},"20220531024143":{"version":20220531024143,"path":"db/post_migrate/20220531024143_remove_clusters_deployments_cluster_id_fk.rb","name":"RemoveClustersDeploymentsClusterIdFk","type":"post_deploy","intro_on_current_branch":false},"20210519104931":{"version":20210519104931,"path":"db/post_migrate/20210519104931_backfill_clusters_integration_prometheus_enabled.rb","name":"BackfillClustersIntegrationPrometheusEnabled","type":"post_deploy","intro_on_current_branch":false},"20210513163904":{"version":20210513163904,"path":"db/post_migrate/20210513163904_cleanup_move_container_registry_enabled_to_project_feature.rb","name":"CleanupMoveContainerRegistryEnabledToProjectFeature","type":"post_deploy","intro_on_current_branch":false},"20210825182303":{"version":20210825182303,"path":"db/post_migrate/20210825182303_remove_duplicate_dast_site_tokens_with_same_token.rb","name":"RemoveDuplicateDastSiteTokensWithSameToken","type":"post_deploy","intro_on_current_branch":false},"20220704045440":{"version":20220704045440,"path":"db/post_migrate/20220704045440_drop_project_tracing_settings_table.rb","name":"DropProjectTracingSettingsTable","type":"post_deploy","intro_on_current_branch":false},"20210311120155":{"version":20210311120155,"path":"db/post_migrate/20210311120155_backfill_events_id_for_bigint_conversion.rb","name":"BackfillEventsIdForBigintConversion","type":"post_deploy","intro_on_current_branch":false},"20220601152916":{"version":20220601152916,"path":"db/post_migrate/20220601152916_add_user_id_and_ip_address_success_index_to_authentication_events.rb","name":"AddUserIdAndIpAddressSuccessIndexToAuthenticationEvents","type":"post_deploy","intro_on_current_branch":false},"20210701111909":{"version":20210701111909,"path":"db/post_migrate/20210701111909_backfill_issues_upvotes_count.rb","name":"BackfillIssuesUpvotesCount","type":"post_deploy","intro_on_current_branch":false},"20211214012507":{"version":20211214012507,"path":"db/post_migrate/20211214012507_backfill_incident_issue_escalation_statuses.rb","name":"BackfillIncidentIssueEscalationStatuses","type":"post_deploy","intro_on_current_branch":false},"20210907021940":{"version":20210907021940,"path":"db/post_migrate/20210907021940_cleanup_bigint_conversion_for_ci_stages.rb","name":"CleanupBigintConversionForCiStages","type":"post_deploy","intro_on_current_branch":false},"20220119141736":{"version":20220119141736,"path":"db/post_migrate/20220119141736_remove_projects_ci_pipeline_artifacts_project_id_fk.rb","name":"RemoveProjectsCiPipelineArtifactsProjectIdFk","type":"post_deploy","intro_on_current_branch":false},"20211022112202":{"version":20211022112202,"path":"db/post_migrate/20211022112202_add_cluster_id_location_index_to_vulnerability_occurrences.rb","name":"AddClusterIdLocationIndexToVulnerabilityOccurrences","type":"post_deploy","intro_on_current_branch":false},"20210922082019":{"version":20210922082019,"path":"db/post_migrate/20210922082019_drop_int4_column_for_events.rb","name":"DropInt4ColumnForEvents","type":"post_deploy","intro_on_current_branch":false},"20220510004501":{"version":20220510004501,"path":"db/post_migrate/20220510004501_remove_tmp_empty_traversal_ids_child_namespace_index.rb","name":"RemoveTmpEmptyTraversalIdsChildNamespaceIndex","type":"post_deploy","intro_on_current_branch":false},"20220201034731":{"version":20220201034731,"path":"db/post_migrate/20220201034731_remove_index_clusters_kubernetes_namespaces_on_cluster_id.rb","name":"RemoveIndexClustersKubernetesNamespacesOnClusterId","type":"post_deploy","intro_on_current_branch":false},"20220622070547":{"version":20220622070547,"path":"db/post_migrate/20220622070547_add_temp_index_for_container_registry_size_migration.rb","name":"AddTempIndexForContainerRegistrySizeMigration","type":"post_deploy","intro_on_current_branch":false},"20220124184338":{"version":20220124184338,"path":"db/post_migrate/20220124184338_remove_projects_ci_subscriptions_projects_upstream_project_id_fk.rb","name":"RemoveProjectsCiSubscriptionsProjectsUpstreamProjectIdFk","type":"post_deploy","intro_on_current_branch":false},"20210824102750":{"version":20210824102750,"path":"db/post_migrate/20210824102750_add_project_namespace_foreign_key_to_project.rb","name":"AddProjectNamespaceForeignKeyToProject","type":"post_deploy","intro_on_current_branch":false},"20210609202501":{"version":20210609202501,"path":"db/post_migrate/20210609202501_schedule_backfill_draft_status_on_merge_requests.rb","name":"ScheduleBackfillDraftStatusOnMergeRequests","type":"post_deploy","intro_on_current_branch":false},"20210520012430":{"version":20210520012430,"path":"db/post_migrate/20210520012430_backfill_pk_conversion_for_self_managed.rb","name":"BackfillPkConversionForSelfManaged","type":"post_deploy","intro_on_current_branch":false},"20220224204415":{"version":20220224204415,"path":"db/post_migrate/20220224204415_recreate_index_security_ci_builds_on_name_and_id_parser_with_new_features.rb","name":"RecreateIndexSecurityCiBuildsOnNameAndIdParserWithNewFeatures","type":"post_deploy","intro_on_current_branch":false},"20220624062300":{"version":20220624062300,"path":"db/post_migrate/20220624062300_delete_backfill_ci_runner_semver_migration.rb","name":"DeleteBackfillCiRunnerSemverMigration","type":"post_deploy","intro_on_current_branch":false},"20210426225417":{"version":20210426225417,"path":"db/post_migrate/20210426225417_schedule_recalculate_uuid_on_vulnerabilities_occurrences2.rb","name":"ScheduleRecalculateUuidOnVulnerabilitiesOccurrences2","type":"post_deploy","intro_on_current_branch":false},"20211031154919":{"version":20211031154919,"path":"db/post_migrate/20211031154919_add_indexes_to_merge_request_stage_events.rb","name":"AddIndexesToMergeRequestStageEvents","type":"post_deploy","intro_on_current_branch":false},"20220121221651":{"version":20220121221651,"path":"db/post_migrate/20220121221651_remove_projects_ci_variables_project_id_fk.rb","name":"RemoveProjectsCiVariablesProjectIdFk","type":"post_deploy","intro_on_current_branch":false},"20220309154855":{"version":20220309154855,"path":"db/post_migrate/20220309154855_add_index_on_issues_closed_incidents.rb","name":"AddIndexOnIssuesClosedIncidents","type":"post_deploy","intro_on_current_branch":false},"20220830071704":{"version":20220830071704,"path":"db/post_migrate/20220830071704_remove_temporary_index_for_orphaned_invited_members.rb","name":"RemoveTemporaryIndexForOrphanedInvitedMembers","type":"post_deploy","intro_on_current_branch":false},"20220415124804":{"version":20220415124804,"path":"db/post_migrate/20220415124804_remove_job_artifact_deleted_event_table.rb","name":"RemoveJobArtifactDeletedEventTable","type":"post_deploy","intro_on_current_branch":false},"20210420121149":{"version":20210420121149,"path":"db/post_migrate/20210420121149_backfill_conversion_of_ci_job_artifacts.rb","name":"BackfillConversionOfCiJobArtifacts","type":"post_deploy","intro_on_current_branch":false},"20211213102111":{"version":20211213102111,"path":"db/post_migrate/20211213102111_drop_ci_pipelines_mr_metrics_fk.rb","name":"DropCiPipelinesMrMetricsFk","type":"post_deploy","intro_on_current_branch":false},"20220517133753":{"version":20220517133753,"path":"db/post_migrate/20220517133753_migrate_free_user_cap_remediation.rb","name":"MigrateFreeUserCapRemediation","type":"post_deploy","intro_on_current_branch":false},"20220113035519":{"version":20220113035519,"path":"db/post_migrate/20220113035519_remove_users_ci_job_token_project_scope_links_added_by_id_fk.rb","name":"RemoveUsersCiJobTokenProjectScopeLinksAddedByIdFk","type":"post_deploy","intro_on_current_branch":false},"20210730170823":{"version":20210730170823,"path":"db/post_migrate/20210730170823_schedule_security_setting_creation.rb","name":"ScheduleSecuritySettingCreation","type":"post_deploy","intro_on_current_branch":false},"20210610042700":{"version":20210610042700,"path":"db/post_migrate/20210610042700_remove_clusters_applications_fluentd_table.rb","name":"RemoveClustersApplicationsFluentdTable","type":"post_deploy","intro_on_current_branch":false},"20211206074547":{"version":20211206074547,"path":"db/post_migrate/20211206074547_remove_old_calendar_events_index.rb","name":"RemoveOldCalendarEventsIndex","type":"post_deploy","intro_on_current_branch":false},"20220126210657":{"version":20220126210657,"path":"db/post_migrate/20220126210657_remove_projects_ci_pipelines_project_id_fk.rb","name":"RemoveProjectsCiPipelinesProjectIdFk","type":"post_deploy","intro_on_current_branch":false},"20210427085020":{"version":20210427085020,"path":"db/post_migrate/20210427085020_backfill_ci_builds_runner_session_for_bigint_conversion.rb","name":"BackfillCiBuildsRunnerSessionForBigintConversion","type":"post_deploy","intro_on_current_branch":false},"20220616171355":{"version":20220616171355,"path":"db/post_migrate/20220616171355_update_vulnerabilities_project_id_id_active_cis_index.rb","name":"UpdateVulnerabilitiesProjectIdIdActiveCisIndex","type":"post_deploy","intro_on_current_branch":false},"20220418180958":{"version":20220418180958,"path":"db/post_migrate/20220418180958_remove_integrations_properties.rb","name":"RemoveIntegrationsProperties","type":"post_deploy","intro_on_current_branch":false},"20220707192420":{"version":20220707192420,"path":"db/post_migrate/20220707192420_remove_tmp_idx_merge_requests_draft_and_status.rb","name":"RemoveTmpIdxMergeRequestsDraftAndStatus","type":"post_deploy","intro_on_current_branch":false},"20220720121421":{"version":20220720121421,"path":"db/post_migrate/20220720121421_remove_pat_and_ssh_enforcement_columns_from_application_settings.rb","name":"RemovePatAndSshEnforcementColumnsFromApplicationSettings","type":"post_deploy","intro_on_current_branch":false},"20220322023800":{"version":20220322023800,"path":"db/post_migrate/20220322023800_add_tmp_index_routes_id_for_project_namespaces.rb","name":"AddTmpIndexRoutesIdForProjectNamespaces","type":"post_deploy","intro_on_current_branch":false},"20220426185933":{"version":20220426185933,"path":"db/post_migrate/20220426185933_backfill_deployments_finished_at.rb","name":"BackfillDeploymentsFinishedAt","type":"post_deploy","intro_on_current_branch":false},"20210722042939":{"version":20210722042939,"path":"db/post_migrate/20210722042939_update_issuable_slas_where_issue_closed.rb","name":"UpdateIssuableSlasWhereIssueClosed","type":"post_deploy","intro_on_current_branch":false},"20220119094503":{"version":20220119094503,"path":"db/post_migrate/20220119094503_populate_audit_event_streaming_verification_token.rb","name":"PopulateAuditEventStreamingVerificationToken","type":"post_deploy","intro_on_current_branch":false},"20210907041000":{"version":20210907041000,"path":"db/post_migrate/20210907041000_cleanup_bigint_conversion_for_geo_job_artifact_deleted_events.rb","name":"CleanupBigintConversionForGeoJobArtifactDeletedEvents","type":"post_deploy","intro_on_current_branch":false},"20220712175029":{"version":20220712175029,"path":"db/post_migrate/20220712175029_add_index_with_target_type_to_todos.rb","name":"AddIndexWithTargetTypeToTodos","type":"post_deploy","intro_on_current_branch":false},"20220525165334":{"version":20220525165334,"path":"db/post_migrate/20220525165334_migrate_irker_worker_queue.rb","name":"MigrateIrkerWorkerQueue","type":"post_deploy","intro_on_current_branch":false},"20210616145254":{"version":20210616145254,"path":"db/post_migrate/20210616145254_add_partial_index_for_ci_builds_token.rb","name":"AddPartialIndexForCiBuildsToken","type":"post_deploy","intro_on_current_branch":false},"20220802112102":{"version":20220802112102,"path":"db/post_migrate/20220802112102_schedule_migrate_shared_vulnerability_scanners.rb","name":"ScheduleMigrateSharedVulnerabilityScanners","type":"post_deploy","intro_on_current_branch":false},"20220922090236":{"version":20220922090236,"path":"db/post_migrate/20220922090236_remove_trace_column_from_ci_builds.rb","name":"RemoveTraceColumnFromCiBuilds","type":"post_deploy","intro_on_current_branch":false},"20210830104800":{"version":20210830104800,"path":"db/post_migrate/20210830104800_reschedule_extract_project_topics_into_separate_table.rb","name":"RescheduleExtractProjectTopicsIntoSeparateTable","type":"post_deploy","intro_on_current_branch":false},"20210709024048":{"version":20210709024048,"path":"db/post_migrate/20210709024048_finalize_push_event_payloads_bigint_conversion_2.rb","name":"FinalizePushEventPayloadsBigintConversion2","type":"post_deploy","intro_on_current_branch":false},"20210923192649":{"version":20210923192649,"path":"db/post_migrate/20210923192649_remove_open_project_data_table.rb","name":"RemoveOpenProjectDataTable","type":"post_deploy","intro_on_current_branch":false},"20211022214523":{"version":20211022214523,"path":"db/post_migrate/20211022214523_schedule_recalculate_vulnerability_finding_signatures_for_findings.rb","name":"ScheduleRecalculateVulnerabilityFindingSignaturesForFindings","type":"post_deploy","intro_on_current_branch":false},"20210907033745":{"version":20210907033745,"path":"db/post_migrate/20210907033745_cleanup_bigint_conversion_for_deployments.rb","name":"CleanupBigintConversionForDeployments","type":"post_deploy","intro_on_current_branch":false},"20220124153233":{"version":20220124153233,"path":"db/post_migrate/20220124153233_remove_projects_ci_job_artifacts_project_id_fk.rb","name":"RemoveProjectsCiJobArtifactsProjectIdFk","type":"post_deploy","intro_on_current_branch":false},"20220706145113":{"version":20220706145113,"path":"db/post_migrate/20220706145113_backfill_namespace_id_on_issues.rb","name":"BackfillNamespaceIdOnIssues","type":"post_deploy","intro_on_current_branch":false},"20210527131039":{"version":20210527131039,"path":"db/post_migrate/20210527131039_clean_up_rename_experiment_subjects_group_id_to_namespace_id.rb","name":"CleanUpRenameExperimentSubjectsGroupIdToNamespaceId","type":"post_deploy","intro_on_current_branch":false},"20211122033501":{"version":20211122033501,"path":"db/post_migrate/20211122033501_improve_index_on_events_for_calendar.rb","name":"ImproveIndexOnEventsForCalendar","type":"post_deploy","intro_on_current_branch":false},"20220106231518":{"version":20220106231518,"path":"db/post_migrate/20220106231518_remove_foreign_key_ci_daily_build_group_report_results_group_id.rb","name":"RemoveForeignKeyCiDailyBuildGroupReportResultsGroupId","type":"post_deploy","intro_on_current_branch":false},"20220628122622":{"version":20220628122622,"path":"db/post_migrate/20220628122622_rename_builds_sidekiq_queues_to_namespaces.rb","name":"RenameBuildsSidekiqQueuesToNamespaces","type":"post_deploy","intro_on_current_branch":false},"20220324081709":{"version":20220324081709,"path":"db/post_migrate/20220324081709_fix_and_backfill_project_namespaces_for_projects_with_duplicate_name.rb","name":"FixAndBackfillProjectNamespacesForProjectsWithDuplicateName","type":"post_deploy","intro_on_current_branch":false},"20220712144900":{"version":20220712144900,"path":"db/post_migrate/20220712144900_cleanup_jira_tracker_data_service_id.rb","name":"CleanupJiraTrackerDataServiceId","type":"post_deploy","intro_on_current_branch":false},"20210630025020":{"version":20210630025020,"path":"db/post_migrate/20210630025020_migrate_push_event_payloads_event_id_back_to_integer_for_gitlab_com.rb","name":"MigratePushEventPayloadsEventIdBackToIntegerForGitlabCom","type":"post_deploy","intro_on_current_branch":false},"20220920122121":{"version":20220920122121,"path":"db/post_migrate/20220920122121_schedule_index_removal_for_ci_builds_metadata.rb","name":"ScheduleIndexRemovalForCiBuildsMetadata","type":"post_deploy","intro_on_current_branch":false},"20211209093636":{"version":20211209093636,"path":"db/post_migrate/20211209093636_track_ci_job_artifacts_deletes.rb","name":"TrackCiJobArtifactsDeletes","type":"post_deploy","intro_on_current_branch":false},"20220112015940":{"version":20220112015940,"path":"db/post_migrate/20220112015940_remove_projects_ci_running_builds_fk.rb","name":"RemoveProjectsCiRunningBuildsFk","type":"post_deploy","intro_on_current_branch":false},"20220314162342":{"version":20220314162342,"path":"db/post_migrate/20220314162342_add_index_ci_job_artifacts_project_id_created_at.rb","name":"AddIndexCiJobArtifactsProjectIdCreatedAt","type":"post_deploy","intro_on_current_branch":false},"20210622141148":{"version":20210622141148,"path":"db/post_migrate/20210622141148_schedule_delete_orphaned_deployments.rb","name":"ScheduleDeleteOrphanedDeployments","type":"post_deploy","intro_on_current_branch":false},"20210423124223":{"version":20210423124223,"path":"db/post_migrate/20210423124223_remove_proxy_settings_to_jira_tracker_data.rb","name":"RemoveProxySettingsToJiraTrackerData","type":"post_deploy","intro_on_current_branch":false},"20220315181125":{"version":20220315181125,"path":"db/post_migrate/20220315181125_remove_issues_work_item_type_id_index.rb","name":"RemoveIssuesWorkItemTypeIdIndex","type":"post_deploy","intro_on_current_branch":false},"20211207173510":{"version":20211207173510,"path":"db/post_migrate/20211207173510_remove_extra_finding_evidence_tables_foreign_keys.rb","name":"RemoveExtraFindingEvidenceTablesForeignKeys","type":"post_deploy","intro_on_current_branch":false},"20220719165537":{"version":20220719165537,"path":"db/post_migrate/20220719165537_remove_ci_runners_semver_column.rb","name":"RemoveCiRunnersSemverColumn","type":"post_deploy","intro_on_current_branch":false},"20210721122840":{"version":20210721122840,"path":"db/post_migrate/20210721122840_remove_seat_link_enabled_from_application_settings.rb","name":"RemoveSeatLinkEnabledFromApplicationSettings","type":"post_deploy","intro_on_current_branch":false},"20211105135157":{"version":20211105135157,"path":"db/post_migrate/20211105135157_drop_ci_build_trace_sections.rb","name":"DropCiBuildTraceSections","type":"post_deploy","intro_on_current_branch":false},"20220728134255":{"version":20220728134255,"path":"db/post_migrate/20220728134255_update_index_vulnerabilities_common_finder.rb","name":"UpdateIndexVulnerabilitiesCommonFinder","type":"post_deploy","intro_on_current_branch":false},"20220420061450":{"version":20220420061450,"path":"db/post_migrate/20220420061450_backfill_null_note_discussion_ids.rb","name":"BackfillNullNoteDiscussionIds","type":"post_deploy","intro_on_current_branch":false},"20210922025631":{"version":20210922025631,"path":"db/post_migrate/20210922025631_drop_int4_column_for_ci_sources_pipelines.rb","name":"DropInt4ColumnForCiSourcesPipelines","type":"post_deploy","intro_on_current_branch":false},"20220916070101":{"version":20220916070101,"path":"db/post_migrate/20220916070101_add_index_build_id_partition_id_to_ci_build_metadata.rb","name":"AddIndexBuildIdPartitionIdToCiBuildMetadata","type":"post_deploy","intro_on_current_branch":false},"20220111093534":{"version":20220111093534,"path":"db/post_migrate/20220111093534_remove_index_on_auto_stop_in.rb","name":"RemoveIndexOnAutoStopIn","type":"post_deploy","intro_on_current_branch":false},"20220921111831":{"version":20220921111831,"path":"db/post_migrate/20220921111831_remove_and_add_ci_group_variables_raw_with_new_default.rb","name":"RemoveAndAddCiGroupVariablesRawWithNewDefault","type":"post_deploy","intro_on_current_branch":false},"20220502173045":{"version":20220502173045,"path":"db/post_migrate/20220502173045_reset_too_many_tags_skipped_registry_imports.rb","name":"ResetTooManyTagsSkippedRegistryImports","type":"post_deploy","intro_on_current_branch":false},"20220525201022":{"version":20220525201022,"path":"db/post_migrate/20220525201022_add_temporary_index_for_vulnerability_reads_cluster_agent_id_migration.rb","name":"AddTemporaryIndexForVulnerabilityReadsClusterAgentIdMigration","type":"post_deploy","intro_on_current_branch":false},"20211027064156":{"version":20211027064156,"path":"db/post_migrate/20211027064156_track_deletions_in_chat_names.rb","name":"TrackDeletionsInChatNames","type":"post_deploy","intro_on_current_branch":false},"20220729033851":{"version":20220729033851,"path":"db/post_migrate/20220729033851_add_partial_legacy_open_source_license_available_index.rb","name":"AddPartialLegacyOpenSourceLicenseAvailableIndex","type":"post_deploy","intro_on_current_branch":false},"20211018102252":{"version":20211018102252,"path":"db/post_migrate/20211018102252_add_index_to_group_id_column_on_webhooks_table.rb","name":"AddIndexToGroupIdColumnOnWebhooksTable","type":"post_deploy","intro_on_current_branch":false},"20220325000000":{"version":20220325000000,"path":"db/post_migrate/20220325000000_prepare_index_for_ci_job_artifacts_unlocked_with_expire_at.rb","name":"PrepareIndexForCiJobArtifactsUnlockedWithExpireAt","type":"post_deploy","intro_on_current_branch":false},"20220302203410":{"version":20220302203410,"path":"db/post_migrate/20220302203410_create_index_security_ci_builds_on_name_and_id_parser_with_new_features.rb","name":"CreateIndexSecurityCiBuildsOnNameAndIdParserWithNewFeatures","type":"post_deploy","intro_on_current_branch":false},"20210731132939":{"version":20210731132939,"path":"db/post_migrate/20210731132939_backfill_stage_event_hash.rb","name":"BackfillStageEventHash","type":"post_deploy","intro_on_current_branch":false},"20220413011328":{"version":20220413011328,"path":"db/post_migrate/20220413011328_remove_partial_index_on_unencrypted_integrations.rb","name":"RemovePartialIndexOnUnencryptedIntegrations","type":"post_deploy","intro_on_current_branch":false},"20210727175201":{"version":20210727175201,"path":"db/post_migrate/20210727175201_remove_unused_columns_from_elastic_reindexing_tasks.rb","name":"RemoveUnusedColumnsFromElasticReindexingTasks","type":"post_deploy","intro_on_current_branch":false},"20220720123249":{"version":20220720123249,"path":"db/post_migrate/20220720123249_remove_token_column_from_ci_builds.rb","name":"RemoveTokenColumnFromCiBuilds","type":"post_deploy","intro_on_current_branch":false},"20220627152642":{"version":20220627152642,"path":"db/post_migrate/20220627152642_queue_update_delayed_project_removal_to_null_for_user_namespace.rb","name":"QueueUpdateDelayedProjectRemovalToNullForUserNamespace","type":"post_deploy","intro_on_current_branch":false},"20210328214434":{"version":20210328214434,"path":"db/post_migrate/20210328214434_remove_temporary_index_from_vulnerabilities_table.rb","name":"RemoveTemporaryIndexFromVulnerabilitiesTable","type":"post_deploy","intro_on_current_branch":false},"20211209093828":{"version":20211209093828,"path":"db/post_migrate/20211209093828_track_users_deletes.rb","name":"TrackUsersDeletes","type":"post_deploy","intro_on_current_branch":false},"20211027043229":{"version":20211027043229,"path":"db/post_migrate/20211027043229_track_ci_build_deletions.rb","name":"TrackCiBuildDeletions","type":"post_deploy","intro_on_current_branch":false},"20220505060011":{"version":20220505060011,"path":"db/post_migrate/20220505060011_remove_namespaces_id_parent_id_partial_index.rb","name":"RemoveNamespacesIdParentIdPartialIndex","type":"post_deploy","intro_on_current_branch":false},"20211101222614":{"version":20211101222614,"path":"db/post_migrate/20211101222614_consume_remaining_user_namespace_jobs.rb","name":"ConsumeRemainingUserNamespaceJobs","type":"post_deploy","intro_on_current_branch":false},"20220318111949":{"version":20220318111949,"path":"db/post_migrate/20220318111949_drop_temporary_indexes_for_primary_email_migration_second_cleanup.rb","name":"DropTemporaryIndexesForPrimaryEmailMigrationSecondCleanup","type":"post_deploy","intro_on_current_branch":false},"20220809214730":{"version":20220809214730,"path":"db/post_migrate/20220809214730_add_note_metadata_temp_index_on_id_where_task.rb","name":"AddNoteMetadataTempIndexOnIdWhereTask","type":"post_deploy","intro_on_current_branch":false},"20220922204106":{"version":20220922204106,"path":"db/post_migrate/20220922204106_remove_index_for_requested_non_invited_awaiting_members.rb","name":"RemoveIndexForRequestedNonInvitedAwaitingMembers","type":"post_deploy","intro_on_current_branch":false},"20210901044237":{"version":20210901044237,"path":"db/post_migrate/20210901044237_events_bigint_conversion_remove_triggers.rb","name":"EventsBigintConversionRemoveTriggers","type":"post_deploy","intro_on_current_branch":false},"20211207173511":{"version":20211207173511,"path":"db/post_migrate/20211207173511_remove_extra_finding_evidence_tables.rb","name":"RemoveExtraFindingEvidenceTables","type":"post_deploy","intro_on_current_branch":false},"20220304165107":{"version":20220304165107,"path":"db/post_migrate/20220304165107_drop_partitioned_foreign_keys.rb","name":"DropPartitionedForeignKeys","type":"post_deploy","intro_on_current_branch":false},"20220120211832":{"version":20220120211832,"path":"db/post_migrate/20220120211832_backfill_member_namespace_id_for_group_members.rb","name":"BackfillMemberNamespaceIdForGroupMembers","type":"post_deploy","intro_on_current_branch":false},"20220113014438":{"version":20220113014438,"path":"db/post_migrate/20220113014438_remove_projects_ci_resource_groups_project_id_fk.rb","name":"RemoveProjectsCiResourceGroupsProjectIdFk","type":"post_deploy","intro_on_current_branch":false},"20220316112206":{"version":20220316112206,"path":"db/post_migrate/20220316112206_add_contacts_index_on_group_email_and_id.rb","name":"AddContactsIndexOnGroupEmailAndId","type":"post_deploy","intro_on_current_branch":false},"20220706065611":{"version":20220706065611,"path":"db/post_migrate/20220706065611_remove_foreign_key_in_clusters_integration_elasticstack.rb","name":"RemoveForeignKeyInClustersIntegrationElasticstack","type":"post_deploy","intro_on_current_branch":false},"20220921111907":{"version":20220921111907,"path":"db/post_migrate/20220921111907_remove_and_add_ci_variables_raw_with_new_default.rb","name":"RemoveAndAddCiVariablesRawWithNewDefault","type":"post_deploy","intro_on_current_branch":false},"20220221214928":{"version":20220221214928,"path":"db/post_migrate/20220221214928_remove_show_diff_preview_in_email_column.rb","name":"RemoveShowDiffPreviewInEmailColumn","type":"post_deploy","intro_on_current_branch":false},"20211029102822":{"version":20211029102822,"path":"db/post_migrate/20211029102822_add_open_source_plan.rb","name":"AddOpenSourcePlan","type":"post_deploy","intro_on_current_branch":false},"20220125083520":{"version":20220125083520,"path":"db/post_migrate/20220125083520_remove_ci_pipelines_dast_site_profiles_pipelines_ci_pipeline_id_fk.rb","name":"RemoveCiPipelinesDastSiteProfilesPipelinesCiPipelineIdFk","type":"post_deploy","intro_on_current_branch":false},"20210317104032":{"version":20210317104032,"path":"db/post_migrate/20210317104032_set_iteration_cadence_automatic_to_false.rb","name":"SetIterationCadenceAutomaticToFalse","type":"post_deploy","intro_on_current_branch":false},"20220617123113":{"version":20220617123113,"path":"db/post_migrate/20220617123113_drop_index_on_projects_on_runners_token_encrypted.rb","name":"DropIndexOnProjectsOnRunnersTokenEncrypted","type":"post_deploy","intro_on_current_branch":false},"20220803042351":{"version":20220803042351,"path":"db/post_migrate/20220803042351_add_tmp_index_todos_attention_request_action.rb","name":"AddTmpIndexTodosAttentionRequestAction","type":"post_deploy","intro_on_current_branch":false},"20210302074524":{"version":20210302074524,"path":"db/post_migrate/20210302074524_backfill_namespace_statistics_with_wiki_size.rb","name":"BackfillNamespaceStatisticsWithWikiSize","type":"post_deploy","intro_on_current_branch":false},"20210721125804":{"version":20210721125804,"path":"db/post_migrate/20210721125804_remove_signing_keys_from_packages_debian_project_distributions.rb","name":"RemoveSigningKeysFromPackagesDebianProjectDistributions","type":"post_deploy","intro_on_current_branch":false},"20220524132416":{"version":20220524132416,"path":"db/post_migrate/20220524132416_prepare_job_artifact_project_id_index.rb","name":"PrepareJobArtifactProjectIdIndex","type":"post_deploy","intro_on_current_branch":false},"20211006174114":{"version":20211006174114,"path":"db/post_migrate/20211006174114_add_namespace_index_on_type_sync.rb","name":"AddNamespaceIndexOnTypeSync","type":"post_deploy","intro_on_current_branch":false},"20220921144258":{"version":20220921144258,"path":"db/post_migrate/20220921144258_remove_orphan_group_token_users.rb","name":"RemoveOrphanGroupTokenUsers","type":"post_deploy","intro_on_current_branch":false},"20220109134455":{"version":20220109134455,"path":"db/post_migrate/20220109134455_add_idx_vulnerability_occurrences_dedup_again.rb","name":"AddIdxVulnerabilityOccurrencesDedupAgain","type":"post_deploy","intro_on_current_branch":false},"20210422023046":{"version":20210422023046,"path":"db/post_migrate/20210422023046_backfill_ci_sources_pipelines_source_job_id_for_bigint_conversion.rb","name":"BackfillCiSourcesPipelinesSourceJobIdForBigintConversion","type":"post_deploy","intro_on_current_branch":false},"20210811214811":{"version":20210811214811,"path":"db/post_migrate/20210811214811_schedule_copy_ci_builds_columns_to_security_scans.rb","name":"ScheduleCopyCiBuildsColumnsToSecurityScans","type":"post_deploy","intro_on_current_branch":false},"20220929081645":{"version":20220929081645,"path":"db/post_migrate/20220929081645_tmp_idx_null_member_namespace_id.rb","name":"TmpIdxNullMemberNamespaceId","type":"post_deploy","intro_on_current_branch":false},"20220216201949":{"version":20220216201949,"path":"db/post_migrate/20220216201949_remove_package_files_limit_from_application_settings.rb","name":"RemovePackageFilesLimitFromApplicationSettings","type":"post_deploy","intro_on_current_branch":false},"20210729192959":{"version":20210729192959,"path":"db/post_migrate/20210729192959_drop_ci_test_case_failures_table.rb","name":"DropCiTestCaseFailuresTable","type":"post_deploy","intro_on_current_branch":false},"20210823142036":{"version":20210823142036,"path":"db/post_migrate/20210823142036_drop_temporary_trigger_for_ci_job_artifacts.rb","name":"DropTemporaryTriggerForCiJobArtifacts","type":"post_deploy","intro_on_current_branch":false},"20210427212034":{"version":20210427212034,"path":"db/post_migrate/20210427212034_schedule_update_timelogs_project_id.rb","name":"ScheduleUpdateTimelogsProjectId","type":"post_deploy","intro_on_current_branch":false},"20220916054103":{"version":20220916054103,"path":"db/post_migrate/20220916054103_remove_experience_level_column.rb","name":"RemoveExperienceLevelColumn","type":"post_deploy","intro_on_current_branch":false},"20210927153807":{"version":20210927153807,"path":"db/post_migrate/20210927153807_update_issues_relative_position_indexes.rb","name":"UpdateIssuesRelativePositionIndexes","type":"post_deploy","intro_on_current_branch":false},"20211207090503":{"version":20211207090503,"path":"db/post_migrate/20211207090503_cleanup_first_mentioned_in_commit_jobs.rb","name":"CleanupFirstMentionedInCommitJobs","type":"post_deploy","intro_on_current_branch":false},"20211130165043":{"version":20211130165043,"path":"db/post_migrate/20211130165043_backfill_sequence_column_for_sprints_table.rb","name":"BackfillSequenceColumnForSprintsTable","type":"post_deploy","intro_on_current_branch":false},"20210311045139":{"version":20210311045139,"path":"db/post_migrate/20210311045139_set_traversal_ids_for_gitlab_org_group_com.rb","name":"SetTraversalIdsForGitlabOrgGroupCom","type":"post_deploy","intro_on_current_branch":false},"20220627223041":{"version":20220627223041,"path":"db/post_migrate/20220627223041_add_post_migrate_test_table.rb","name":"AddPostMigrateTestTable","type":"post_deploy","intro_on_current_branch":false},"20210526222715":{"version":20210526222715,"path":"db/post_migrate/20210526222715_backfill_draft_status_on_merge_requests.rb","name":"BackfillDraftStatusOnMergeRequests","type":"post_deploy","intro_on_current_branch":false},"20220721031446":{"version":20220721031446,"path":"db/post_migrate/20220721031446_schedule_disable_legacy_open_source_license_for_one_member_no_repo_projects.rb","name":"ScheduleDisableLegacyOpenSourceLicenseForOneMemberNoRepoProjects","type":"post_deploy","intro_on_current_branch":false},"20220106185033":{"version":20220106185033,"path":"db/post_migrate/20220106185033_remove_finding_evidence_summary.rb","name":"RemoveFindingEvidenceSummary","type":"post_deploy","intro_on_current_branch":false},"20210824174615":{"version":20210824174615,"path":"db/post_migrate/20210824174615_prepare_ci_builds_metadata_and_ci_build_async_indexes.rb","name":"PrepareCiBuildsMetadataAndCiBuildAsyncIndexes","type":"post_deploy","intro_on_current_branch":false},"20220428133724":{"version":20220428133724,"path":"db/post_migrate/20220428133724_schedule_expire_o_auth_tokens.rb","name":"ScheduleExpireOAuthTokens","type":"post_deploy","intro_on_current_branch":false},"20220204053655":{"version":20220204053655,"path":"db/post_migrate/20220204053655_remove_index_epic_issues_on_epic_id.rb","name":"RemoveIndexEpicIssuesOnEpicId","type":"post_deploy","intro_on_current_branch":false},"20210819145000":{"version":20210819145000,"path":"db/post_migrate/20210819145000_drop_temporary_columns_and_triggers_for_ci_builds_runner_session.rb","name":"DropTemporaryColumnsAndTriggersForCiBuildsRunnerSession","type":"post_deploy","intro_on_current_branch":false},"20211230113031":{"version":20211230113031,"path":"db/post_migrate/20211230113031_add_index_to_events_on_author_id_and_id.rb","name":"AddIndexToEventsOnAuthorIdAndId","type":"post_deploy","intro_on_current_branch":false},"20220505022001":{"version":20220505022001,"path":"db/post_migrate/20220505022001_add_index_to_deployments_on_created_at_cluster_id_and_project_id.rb","name":"AddIndexToDeploymentsOnCreatedAtClusterIdAndProjectId","type":"post_deploy","intro_on_current_branch":false},"20220317161914":{"version":20220317161914,"path":"db/post_migrate/20220317161914_remove_ci_runners_ci_builds_runner_id_fk.rb","name":"RemoveCiRunnersCiBuildsRunnerIdFk","type":"post_deploy","intro_on_current_branch":false},"20211103162025":{"version":20211103162025,"path":"db/post_migrate/20211103162025_add_index_on_events_using_btree_created_at_id.rb","name":"AddIndexOnEventsUsingBtreeCreatedAtId","type":"post_deploy","intro_on_current_branch":false},"20220706122719":{"version":20220706122719,"path":"db/post_migrate/20220706122719_create_index_on_security_findings_uuid_id_desc.rb","name":"CreateIndexOnSecurityFindingsUuidIdDesc","type":"post_deploy","intro_on_current_branch":false},"20220106235626":{"version":20220106235626,"path":"db/post_migrate/20220106235626_remove_foreign_key_ci_runner_namespaces_namespace_id.rb","name":"RemoveForeignKeyCiRunnerNamespacesNamespaceId","type":"post_deploy","intro_on_current_branch":false},"20220107064845":{"version":20220107064845,"path":"db/post_migrate/20220107064845_populate_vulnerability_reads.rb","name":"PopulateVulnerabilityReads","type":"post_deploy","intro_on_current_branch":false},"20220913083015":{"version":20220913083015,"path":"db/post_migrate/20220913083015_clean_up_rename_iterations_cadences_last_run_date_to_next_run_date.rb","name":"CleanUpRenameIterationsCadencesLastRunDateToNextRunDate","type":"post_deploy","intro_on_current_branch":false},"20220904173430":{"version":20220904173430,"path":"db/post_migrate/20220904173430_validate_not_null_constraint_board_project_recent_visits.rb","name":"ValidateNotNullConstraintBoardProjectRecentVisits","type":"post_deploy","intro_on_current_branch":false},"20210429143649":{"version":20210429143649,"path":"db/post_migrate/20210429143649_add_new_issues_index_for_relative_position.rb","name":"AddNewIssuesIndexForRelativePosition","type":"post_deploy","intro_on_current_branch":false},"20210701033622":{"version":20210701033622,"path":"db/post_migrate/20210701033622_finalize_ci_builds_needs_bigint_conversion.rb","name":"FinalizeCiBuildsNeedsBigintConversion","type":"post_deploy","intro_on_current_branch":false},"20210901184511":{"version":20210901184511,"path":"db/post_migrate/20210901184511_prepare_async_indexes_for_ci_builds.rb","name":"PrepareAsyncIndexesForCiBuilds","type":"post_deploy","intro_on_current_branch":false},"20210823132600":{"version":20210823132600,"path":"db/post_migrate/20210823132600_remove_duplicate_dast_site_tokens.rb","name":"RemoveDuplicateDastSiteTokens","type":"post_deploy","intro_on_current_branch":false},"20220706071304":{"version":20220706071304,"path":"db/post_migrate/20220706071304_drop_clusters_integration_elasticstack_table.rb","name":"DropClustersIntegrationElasticstackTable","type":"post_deploy","intro_on_current_branch":false},"20211220064757":{"version":20211220064757,"path":"db/post_migrate/20211220064757_drop_temporary_indexes_for_primary_email_migration.rb","name":"DropTemporaryIndexesForPrimaryEmailMigration","type":"post_deploy","intro_on_current_branch":false},"20210519220019":{"version":20210519220019,"path":"db/post_migrate/20210519220019_backfill_escalation_policies_for_oncall_schedules.rb","name":"BackfillEscalationPoliciesForOncallSchedules","type":"post_deploy","intro_on_current_branch":false},"20210604070207":{"version":20210604070207,"path":"db/post_migrate/20210604070207_retry_backfill_traversal_ids.rb","name":"RetryBackfillTraversalIds","type":"post_deploy","intro_on_current_branch":false},"20210517075444":{"version":20210517075444,"path":"db/post_migrate/20210517075444_remove_temporary_index_for_project_topics_to_taggings.rb","name":"RemoveTemporaryIndexForProjectTopicsToTaggings","type":"post_deploy","intro_on_current_branch":false},"20210901044202":{"version":20210901044202,"path":"db/post_migrate/20210901044202_push_event_payloads_bigint_conversion_remove_triggers.rb","name":"PushEventPayloadsBigintConversionRemoveTriggers","type":"post_deploy","intro_on_current_branch":false},"20210907211557":{"version":20210907211557,"path":"db/post_migrate/20210907211557_finalize_ci_builds_bigint_conversion.rb","name":"FinalizeCiBuildsBigintConversion","type":"post_deploy","intro_on_current_branch":false},"20220311010352":{"version":20220311010352,"path":"db/post_migrate/20220311010352_create_scan_id_and_id_index_on_security_findings.rb","name":"CreateScanIdAndIdIndexOnSecurityFindings","type":"post_deploy","intro_on_current_branch":false},"20220315171027":{"version":20220315171027,"path":"db/post_migrate/20220315171027_add_tmp_index_to_support_leaky_regex_cleanup.rb","name":"AddTmpIndexToSupportLeakyRegexCleanup","type":"post_deploy","intro_on_current_branch":false},"20220715152108":{"version":20220715152108,"path":"db/post_migrate/20220715152108_backfill_project_import_level.rb","name":"BackfillProjectImportLevel","type":"post_deploy","intro_on_current_branch":false},"20210713075117":{"version":20210713075117,"path":"db/post_migrate/20210713075117_re_schedule_latest_pipeline_id_population_with_logging.rb","name":"ReScheduleLatestPipelineIdPopulationWithLogging","type":"post_deploy","intro_on_current_branch":false},"20210304133508":{"version":20210304133508,"path":"db/post_migrate/20210304133508_schedule_remove_duplicate_vulnerabilities_findings2.rb","name":"ScheduleRemoveDuplicateVulnerabilitiesFindings2","type":"post_deploy","intro_on_current_branch":false},"20220831132802":{"version":20220831132802,"path":"db/post_migrate/20220831132802_delete_approval_rules_for_vulnerability.rb","name":"DeleteApprovalRulesForVulnerability","type":"post_deploy","intro_on_current_branch":false},"20220601110011":{"version":20220601110011,"path":"db/post_migrate/20220601110011_schedule_remove_self_managed_wiki_notes.rb","name":"ScheduleRemoveSelfManagedWikiNotes","type":"post_deploy","intro_on_current_branch":false},"20210826171758":{"version":20210826171758,"path":"db/post_migrate/20210826171758_initialize_throttle_unauthenticated_api_columns.rb","name":"InitializeThrottleUnauthenticatedApiColumns","type":"post_deploy","intro_on_current_branch":false},"20220124204046":{"version":20220124204046,"path":"db/post_migrate/20220124204046_remove_projects_ci_sources_pipelines_project_id_fk.rb","name":"RemoveProjectsCiSourcesPipelinesProjectIdFk","type":"post_deploy","intro_on_current_branch":false},"20210804150624":{"version":20210804150624,"path":"db/post_migrate/20210804150624_remove_cluster_image_scanning_from_approval_project_rules.rb","name":"RemoveClusterImageScanningFromApprovalProjectRules","type":"post_deploy","intro_on_current_branch":false},"20220125122640":{"version":20220125122640,"path":"db/post_migrate/20220125122640_schedule_populate_topics_non_private_projects_count.rb","name":"SchedulePopulateTopicsNonPrivateProjectsCount","type":"post_deploy","intro_on_current_branch":false},"20210804153307":{"version":20210804153307,"path":"db/post_migrate/20210804153307_prepare_indexes_for_tagging_bigint_conversion.rb","name":"PrepareIndexesForTaggingBigintConversion","type":"post_deploy","intro_on_current_branch":false},"20210914094840":{"version":20210914094840,"path":"db/post_migrate/20210914094840_add_gin_index_on_pending_builds_namespace_traversal_ids.rb","name":"AddGinIndexOnPendingBuildsNamespaceTraversalIds","type":"post_deploy","intro_on_current_branch":false},"20220124214131":{"version":20220124214131,"path":"db/post_migrate/20220124214131_remove_projects_ci_refs_project_id_fk.rb","name":"RemoveProjectsCiRefsProjectIdFk","type":"post_deploy","intro_on_current_branch":false},"20210622041846":{"version":20210622041846,"path":"db/post_migrate/20210622041846_finalize_push_event_payloads_bigint_conversion.rb","name":"FinalizePushEventPayloadsBigintConversion","type":"post_deploy","intro_on_current_branch":false},"20220525131557":{"version":20220525131557,"path":"db/post_migrate/20220525131557_cleanup_backfill_integrations_enable_ssl_verification.rb","name":"CleanupBackfillIntegrationsEnableSslVerification","type":"post_deploy","intro_on_current_branch":false},"20220622080547":{"version":20220622080547,"path":"db/post_migrate/20220622080547_backfill_project_statistics_with_container_registry_size.rb","name":"BackfillProjectStatisticsWithContainerRegistrySize","type":"post_deploy","intro_on_current_branch":false},"20220820221036":{"version":20220820221036,"path":"db/post_migrate/20220820221036_update_tmp_non_migrated_index_on_container_repositories.rb","name":"UpdateTmpNonMigratedIndexOnContainerRepositories","type":"post_deploy","intro_on_current_branch":false},"20220326163653":{"version":20220326163653,"path":"db/post_migrate/20220326163653_add_not_null_contraint_to_project_namespace_id.rb","name":"AddNotNullContraintToProjectNamespaceId","type":"post_deploy","intro_on_current_branch":false},"20220808131659":{"version":20220808131659,"path":"db/post_migrate/20220808131659_remove_ci_namespace_monthly_usages_additional_amount_available_column.rb","name":"RemoveCiNamespaceMonthlyUsagesAdditionalAmountAvailableColumn","type":"post_deploy","intro_on_current_branch":false},"20211012051221":{"version":20211012051221,"path":"db/post_migrate/20211012051221_add_index_btree_namespaces_traversal_ids.rb","name":"AddIndexBtreeNamespacesTraversalIds","type":"post_deploy","intro_on_current_branch":false},"20210914095310":{"version":20210914095310,"path":"db/post_migrate/20210914095310_cleanup_orphan_project_access_tokens.rb","name":"CleanupOrphanProjectAccessTokens","type":"post_deploy","intro_on_current_branch":false},"20210901153324":{"version":20210901153324,"path":"db/post_migrate/20210901153324_slice_merge_request_diff_commit_migrations.rb","name":"SliceMergeRequestDiffCommitMigrations","type":"post_deploy","intro_on_current_branch":false},"20220901035725":{"version":20220901035725,"path":"db/post_migrate/20220901035725_schedule_destroy_invalid_project_members.rb","name":"ScheduleDestroyInvalidProjectMembers","type":"post_deploy","intro_on_current_branch":false},"20220411173544":{"version":20220411173544,"path":"db/post_migrate/20220411173544_cleanup_orphans_approval_project_rules.rb","name":"CleanupOrphansApprovalProjectRules","type":"post_deploy","intro_on_current_branch":false},"20220620060633":{"version":20220620060633,"path":"db/post_migrate/20220620060633_finalize_orphaned_routes_cleanup.rb","name":"FinalizeOrphanedRoutesCleanup","type":"post_deploy","intro_on_current_branch":false},"20210518074332":{"version":20210518074332,"path":"db/post_migrate/20210518074332_schedule_disable_expiration_policies_linked_to_no_container_images.rb","name":"ScheduleDisableExpirationPoliciesLinkedToNoContainerImages","type":"post_deploy","intro_on_current_branch":false},"20220523164734":{"version":20220523164734,"path":"db/post_migrate/20220523164734_add_foreign_key_to_vulnerability_reads_casted_cluster_agent_id.rb","name":"AddForeignKeyToVulnerabilityReadsCastedClusterAgentId","type":"post_deploy","intro_on_current_branch":false},"20220802204737":{"version":20220802204737,"path":"db/post_migrate/20220802204737_remove_deactivated_user_highest_role_stats.rb","name":"RemoveDeactivatedUserHighestRoleStats","type":"post_deploy","intro_on_current_branch":false},"20210921062820":{"version":20210921062820,"path":"db/post_migrate/20210921062820_add_image_location_index_to_vulnerability_occurrences.rb","name":"AddImageLocationIndexToVulnerabilityOccurrences","type":"post_deploy","intro_on_current_branch":false},"20210415101228":{"version":20210415101228,"path":"db/post_migrate/20210415101228_backfill_ci_build_needs_for_bigint_conversion.rb","name":"BackfillCiBuildNeedsForBigintConversion","type":"post_deploy","intro_on_current_branch":false},"20220119203119":{"version":20220119203119,"path":"db/post_migrate/20220119203119_remove_ci_pipelines_vulnerability_occurrence_pipelines_pipeline_id_fk.rb","name":"RemoveCiPipelinesVulnerabilityOccurrencePipelinesPipelineIdFk","type":"post_deploy","intro_on_current_branch":false},"20220217135229":{"version":20220217135229,"path":"db/post_migrate/20220217135229_validate_not_null_constraint_on_security_findings_uuid.rb","name":"ValidateNotNullConstraintOnSecurityFindingsUuid","type":"post_deploy","intro_on_current_branch":false},"20220901184106":{"version":20220901184106,"path":"db/post_migrate/20220901184106_add_not_null_to_board_group_recent_visits.rb","name":"AddNotNullToBoardGroupRecentVisits","type":"post_deploy","intro_on_current_branch":false},"20211207135331":{"version":20211207135331,"path":"db/post_migrate/20211207135331_schedule_recalculate_uuid_on_vulnerabilities_occurrences4.rb","name":"ScheduleRecalculateUuidOnVulnerabilitiesOccurrences4","type":"post_deploy","intro_on_current_branch":false},"20220131000001":{"version":20220131000001,"path":"db/post_migrate/20220131000001_schedule_trace_expiry_removal.rb","name":"ScheduleTraceExpiryRemoval","type":"post_deploy","intro_on_current_branch":false},"20220405092619":{"version":20220405092619,"path":"db/post_migrate/20220405092619_toggle_vsa_aggregations_enable.rb","name":"ToggleVsaAggregationsEnable","type":"post_deploy","intro_on_current_branch":false},"20220505174658":{"version":20220505174658,"path":"db/post_migrate/20220505174658_update_index_on_alerts_to_exclude_null_fingerprints.rb","name":"UpdateIndexOnAlertsToExcludeNullFingerprints","type":"post_deploy","intro_on_current_branch":false},"20220720171102":{"version":20220720171102,"path":"db/post_migrate/20220720171102_add_index_on_vulnerability_reads_namespace_id.rb","name":"AddIndexOnVulnerabilityReadsNamespaceId","type":"post_deploy","intro_on_current_branch":false},"20210311120156":{"version":20210311120156,"path":"db/post_migrate/20210311120156_backfill_push_event_payload_event_id_for_bigint_conversion.rb","name":"BackfillPushEventPayloadEventIdForBigintConversion","type":"post_deploy","intro_on_current_branch":false},"20210506064413":{"version":20210506064413,"path":"db/post_migrate/20210506064413_create_namespaces_id_parent_id_inverse_partial_index.rb","name":"CreateNamespacesIdParentIdInversePartialIndex","type":"post_deploy","intro_on_current_branch":false},"20210303165302":{"version":20210303165302,"path":"db/post_migrate/20210303165302_cleanup_cluster_tokens_with_null_name.rb","name":"CleanupClusterTokensWithNullName","type":"post_deploy","intro_on_current_branch":false},"20210331105335":{"version":20210331105335,"path":"db/post_migrate/20210331105335_drop_non_partitioned_audit_events.rb","name":"DropNonPartitionedAuditEvents","type":"post_deploy","intro_on_current_branch":false},"20220308000205":{"version":20220308000205,"path":"db/post_migrate/20220308000205_drop_old_index_security_ci_builds_on_name_and_id_parser_features.rb","name":"DropOldIndexSecurityCiBuildsOnNameAndIdParserFeatures","type":"post_deploy","intro_on_current_branch":false},"20220810093742":{"version":20220810093742,"path":"db/post_migrate/20220810093742_add_async_tmp_index_job_artifacts_id_and_expire_at.rb","name":"AddAsyncTmpIndexJobArtifactsIdAndExpireAt","type":"post_deploy","intro_on_current_branch":false},"20220606080509":{"version":20220606080509,"path":"db/post_migrate/20220606080509_fix_incorrect_job_artifacts_expire_at.rb","name":"FixIncorrectJobArtifactsExpireAt","type":"post_deploy","intro_on_current_branch":false},"20220628012902":{"version":20220628012902,"path":"db/post_migrate/20220628012902_finalise_project_namespace_members.rb","name":"FinaliseProjectNamespaceMembers","type":"post_deploy","intro_on_current_branch":false},"20211209103048":{"version":20211209103048,"path":"db/post_migrate/20211209103048_backfill_project_namespaces_for_group.rb","name":"BackfillProjectNamespacesForGroup","type":"post_deploy","intro_on_current_branch":false},"20220124180704":{"version":20220124180704,"path":"db/post_migrate/20220124180704_remove_projects_ci_builds_metadata_project_id_fk.rb","name":"RemoveProjectsCiBuildsMetadataProjectIdFk","type":"post_deploy","intro_on_current_branch":false},"20210513155546":{"version":20210513155546,"path":"db/post_migrate/20210513155546_backfill_nuget_temporary_packages_to_processing_status.rb","name":"BackfillNugetTemporaryPackagesToProcessingStatus","type":"post_deploy","intro_on_current_branch":false},"20220404184814":{"version":20220404184814,"path":"db/post_migrate/20220404184814_drop_broader_expired_artifact_index.rb","name":"DropBroaderExpiredArtifactIndex","type":"post_deploy","intro_on_current_branch":false},"20220630151641":{"version":20220630151641,"path":"db/post_migrate/20220630151641_schedule_set_correct_vulnerability_state.rb","name":"ScheduleSetCorrectVulnerabilityState","type":"post_deploy","intro_on_current_branch":false},"20220114105525":{"version":20220114105525,"path":"db/post_migrate/20220114105525_add_index_on_projects_path.rb","name":"AddIndexOnProjectsPath","type":"post_deploy","intro_on_current_branch":false},"20220606054503":{"version":20220606054503,"path":"db/post_migrate/20220606054503_add_tmp_index_job_artifacts_id_and_expire_at.rb","name":"AddTmpIndexJobArtifactsIdAndExpireAt","type":"post_deploy","intro_on_current_branch":false},"20220920124709":{"version":20220920124709,"path":"db/post_migrate/20220920124709_backfill_internal_on_notes.rb","name":"BackfillInternalOnNotes","type":"post_deploy","intro_on_current_branch":false},"20220805001210":{"version":20220805001210,"path":"db/post_migrate/20220805001210_add_text_limit_to_vulnerability_state_transitions_comment.rb","name":"AddTextLimitToVulnerabilityStateTransitionsComment","type":"post_deploy","intro_on_current_branch":false},"20210923135909":{"version":20210923135909,"path":"db/post_migrate/20210923135909_remove_delayed_project_removal_from_namespaces.rb","name":"RemoveDelayedProjectRemovalFromNamespaces","type":"post_deploy","intro_on_current_branch":false},"20220113015830":{"version":20220113015830,"path":"db/post_migrate/20220113015830_remove_projects_ci_build_report_results_project_id_fk.rb","name":"RemoveProjectsCiBuildReportResultsProjectIdFk","type":"post_deploy","intro_on_current_branch":false},"20211206073851":{"version":20211206073851,"path":"db/post_migrate/20211206073851_create_calendar_events_index_synchronously.rb","name":"CreateCalendarEventsIndexSynchronously","type":"post_deploy","intro_on_current_branch":false},"20220321201912":{"version":20220321201912,"path":"db/post_migrate/20220321201912_remove_user_email_lookup_limit.rb","name":"RemoveUserEmailLookupLimit","type":"post_deploy","intro_on_current_branch":false},"20210802112233":{"version":20210802112233,"path":"db/post_migrate/20210802112233_add_index_issues_on_project_id_and_state_id_and_created_at_and_id.rb","name":"AddIndexIssuesOnProjectIdAndStateIdAndCreatedAtAndId","type":"post_deploy","intro_on_current_branch":false},"20220530044712":{"version":20220530044712,"path":"db/post_migrate/20220530044712_add_index_for_vulnerability_reads_location_image.rb","name":"AddIndexForVulnerabilityReadsLocationImage","type":"post_deploy","intro_on_current_branch":false},"20220127112412":{"version":20220127112412,"path":"db/post_migrate/20220127112412_add_index_to_merge_request_reviewers_state.rb","name":"AddIndexToMergeRequestReviewersState","type":"post_deploy","intro_on_current_branch":false},"20211130201100":{"version":20211130201100,"path":"db/post_migrate/20211130201100_track_deletions_in_namespaces.rb","name":"TrackDeletionsInNamespaces","type":"post_deploy","intro_on_current_branch":false},"20220119151221":{"version":20220119151221,"path":"db/post_migrate/20220119151221_remove_merge_requests_ci_pipelines_merge_request_id_fk.rb","name":"RemoveMergeRequestsCiPipelinesMergeRequestIdFk","type":"post_deploy","intro_on_current_branch":false},"20220111221516":{"version":20220111221516,"path":"db/post_migrate/20220111221516_remove_projects_ci_pending_builds_fk.rb","name":"RemoveProjectsCiPendingBuildsFk","type":"post_deploy","intro_on_current_branch":false},"20220314154235":{"version":20220314154235,"path":"db/post_migrate/20220314154235_migrate_vulnerability_approval_rules.rb","name":"MigrateVulnerabilityApprovalRules","type":"post_deploy","intro_on_current_branch":false},"20220324032250":{"version":20220324032250,"path":"db/post_migrate/20220324032250_migrate_shimo_confluence_service_category.rb","name":"MigrateShimoConfluenceServiceCategory","type":"post_deploy","intro_on_current_branch":false},"20220110231420":{"version":20220110231420,"path":"db/post_migrate/20220110231420_remove_requirements_management_test_reports_build_id_fk.rb","name":"RemoveRequirementsManagementTestReportsBuildIdFk","type":"post_deploy","intro_on_current_branch":false},"20220506123922":{"version":20220506123922,"path":"db/post_migrate/20220506123922_add_not_null_constraint_without_validation_to_requirements_issue_id.rb","name":"AddNotNullConstraintWithoutValidationToRequirementsIssueId","type":"post_deploy","intro_on_current_branch":false},"20220628111752":{"version":20220628111752,"path":"db/post_migrate/20220628111752_drop_token_index_from_ci_builds.rb","name":"DropTokenIndexFromCiBuilds","type":"post_deploy","intro_on_current_branch":false},"20220325160153":{"version":20220325160153,"path":"db/post_migrate/20220325160153_create_unique_index_on_projects_name_and_namespace_id.rb","name":"CreateUniqueIndexOnProjectsNameAndNamespaceId","type":"post_deploy","intro_on_current_branch":false},"20220323152202":{"version":20220323152202,"path":"db/post_migrate/20220323152202_add_index_on_visible_deployments.rb","name":"AddIndexOnVisibleDeployments","type":"post_deploy","intro_on_current_branch":false},"20210628124505":{"version":20210628124505,"path":"db/post_migrate/20210628124505_reset_job_token_scope_enabled.rb","name":"ResetJobTokenScopeEnabled","type":"post_deploy","intro_on_current_branch":false},"20210813195518":{"version":20210813195518,"path":"db/post_migrate/20210813195518_schedule_recalculate_uuid_on_vulnerabilities_occurrences3.rb","name":"ScheduleRecalculateUuidOnVulnerabilitiesOccurrences3","type":"post_deploy","intro_on_current_branch":false},"20210511142748":{"version":20210511142748,"path":"db/post_migrate/20210511142748_schedule_drop_invalid_vulnerabilities2.rb","name":"ScheduleDropInvalidVulnerabilities2","type":"post_deploy","intro_on_current_branch":false},"20220512190659":{"version":20220512190659,"path":"db/post_migrate/20220512190659_remove_web_hooks_web_hook_logs_web_hook_id_fk.rb","name":"RemoveWebHooksWebHookLogsWebHookIdFk","type":"post_deploy","intro_on_current_branch":false},"20210330130420":{"version":20210330130420,"path":"db/post_migrate/20210330130420_drop_finding_fingerprint_table.rb","name":"DropFindingFingerprintTable","type":"post_deploy","intro_on_current_branch":false},"20211104165220":{"version":20211104165220,"path":"db/post_migrate/20211104165220_remove_vulnerability_finding_links.rb","name":"RemoveVulnerabilityFindingLinks","type":"post_deploy","intro_on_current_branch":false},"20220905090300":{"version":20220905090300,"path":"db/post_migrate/20220905090300_add_tmp_index_merge_request_reviewers_attention_request_state.rb","name":"AddTmpIndexMergeRequestReviewersAttentionRequestState","type":"post_deploy","intro_on_current_branch":false},"20220510121338":{"version":20220510121338,"path":"db/post_migrate/20220510121338_remove_threat_monitoring_alerts.rb","name":"RemoveThreatMonitoringAlerts","type":"post_deploy","intro_on_current_branch":false},"20210610141711":{"version":20210610141711,"path":"db/post_migrate/20210610141711_disable_expiration_policies_linked_to_no_container_images.rb","name":"DisableExpirationPoliciesLinkedToNoContainerImages","type":"post_deploy","intro_on_current_branch":false},"20220516100652":{"version":20220516100652,"path":"db/post_migrate/20220516100652_drop_compliance_management_frameworks_regulated.rb","name":"DropComplianceManagementFrameworksRegulated","type":"post_deploy","intro_on_current_branch":false},"20211208122201":{"version":20211208122201,"path":"db/post_migrate/20211208122201_schedule_backfill_ci_project_mirrors.rb","name":"ScheduleBackfillCiProjectMirrors","type":"post_deploy","intro_on_current_branch":false},"20220822094804":{"version":20220822094804,"path":"db/post_migrate/20220822094804_add_issues_authorization_index.rb","name":"AddIssuesAuthorizationIndex","type":"post_deploy","intro_on_current_branch":false},"20210511095657":{"version":20210511095657,"path":"db/post_migrate/20210511095657_add_temporary_index_for_project_topics_to_taggings.rb","name":"AddTemporaryIndexForProjectTopicsToTaggings","type":"post_deploy","intro_on_current_branch":false},"20211206161271":{"version":20211206161271,"path":"db/post_migrate/20211206161271_add_indexes_for_primary_email_cleanup_migration.rb","name":"AddIndexesForPrimaryEmailCleanupMigration","type":"post_deploy","intro_on_current_branch":false},"20220301093434":{"version":20220301093434,"path":"db/post_migrate/20220301093434_backfill_all_project_namespaces.rb","name":"BackfillAllProjectNamespaces","type":"post_deploy","intro_on_current_branch":false},"20210802131812":{"version":20210802131812,"path":"db/post_migrate/20210802131812_finalize_convert_deployments_bigint.rb","name":"FinalizeConvertDeploymentsBigint","type":"post_deploy","intro_on_current_branch":false},"20210701141346":{"version":20210701141346,"path":"db/post_migrate/20210701141346_finalize_ci_builds_stage_id_bigint_conversion.rb","name":"FinalizeCiBuildsStageIdBigintConversion","type":"post_deploy","intro_on_current_branch":false},"20211208122200":{"version":20211208122200,"path":"db/post_migrate/20211208122200_schedule_backfill_ci_namespace_mirrors.rb","name":"ScheduleBackfillCiNamespaceMirrors","type":"post_deploy","intro_on_current_branch":false},"20210621155328":{"version":20210621155328,"path":"db/post_migrate/20210621155328_replace_project_authorizations_project_id_index.rb","name":"ReplaceProjectAuthorizationsProjectIdIndex","type":"post_deploy","intro_on_current_branch":false},"20210430135954":{"version":20210430135954,"path":"db/post_migrate/20210430135954_copy_adoption_segments_namespace.rb","name":"CopyAdoptionSegmentsNamespace","type":"post_deploy","intro_on_current_branch":false},"20211209203820":{"version":20211209203820,"path":"db/post_migrate/20211209203820_add_tmp_index_on_report_type.rb","name":"AddTmpIndexOnReportType","type":"post_deploy","intro_on_current_branch":false},"20220706115138":{"version":20220706115138,"path":"db/post_migrate/20220706115138_create_async_index_on_security_findings.rb","name":"CreateAsyncIndexOnSecurityFindings","type":"post_deploy","intro_on_current_branch":false},"20220127132200":{"version":20220127132200,"path":"db/post_migrate/20220127132200_cleanup_backfill_ci_namespace_mirrors.rb","name":"CleanupBackfillCiNamespaceMirrors","type":"post_deploy","intro_on_current_branch":false},"20210923192648":{"version":20210923192648,"path":"db/post_migrate/20210923192648_remove_foreign_keys_from_open_project_data_table.rb","name":"RemoveForeignKeysFromOpenProjectDataTable","type":"post_deploy","intro_on_current_branch":false},"20211006145004":{"version":20211006145004,"path":"db/post_migrate/20211006145004_finalize_indexes_for_ci_job_artifacts_expire_at_unlocked.rb","name":"FinalizeIndexesForCiJobArtifactsExpireAtUnlocked","type":"post_deploy","intro_on_current_branch":false},"20220726182310":{"version":20220726182310,"path":"db/post_migrate/20220726182310_add_user_fk_to_vulnerability_state_transitions.rb","name":"AddUserFkToVulnerabilityStateTransitions","type":"post_deploy","intro_on_current_branch":false},"20220505053504":{"version":20220505053504,"path":"db/post_migrate/20220505053504_remove_namespaces_id_parent_id_inverse_partial_index.rb","name":"RemoveNamespacesIdParentIdInversePartialIndex","type":"post_deploy","intro_on_current_branch":false},"20210430134202":{"version":20210430134202,"path":"db/post_migrate/20210430134202_copy_adoption_snapshot_namespace.rb","name":"CopyAdoptionSnapshotNamespace","type":"post_deploy","intro_on_current_branch":false},"20220617143228":{"version":20220617143228,"path":"db/post_migrate/20220617143228_replace_packages_index_on_project_id_and_status.rb","name":"ReplacePackagesIndexOnProjectIdAndStatus","type":"post_deploy","intro_on_current_branch":false},"20220113040447":{"version":20220113040447,"path":"db/post_migrate/20220113040447_remove_users_ci_pipeline_schedules_owner_id_fk.rb","name":"RemoveUsersCiPipelineSchedulesOwnerIdFk","type":"post_deploy","intro_on_current_branch":false},"20211209093923":{"version":20211209093923,"path":"db/post_migrate/20211209093923_track_external_pull_requests_deletes.rb","name":"TrackExternalPullRequestsDeletes","type":"post_deploy","intro_on_current_branch":false},"20211021140426":{"version":20211021140426,"path":"db/post_migrate/20211021140426_remove_geo_upload_deprecated_fields.rb","name":"RemoveGeoUploadDeprecatedFields","type":"post_deploy","intro_on_current_branch":false},"20211005194425":{"version":20211005194425,"path":"db/post_migrate/20211005194425_schedule_requirements_migration.rb","name":"ScheduleRequirementsMigration","type":"post_deploy","intro_on_current_branch":false},"20220304201847":{"version":20220304201847,"path":"db/post_migrate/20220304201847_add_unique_index_on_security_training_providers.rb","name":"AddUniqueIndexOnSecurityTrainingProviders","type":"post_deploy","intro_on_current_branch":false},"20211122193948":{"version":20211122193948,"path":"db/post_migrate/20211122193948_cleanup_background_migration_of_requirements_to_work_items.rb","name":"CleanupBackgroundMigrationOfRequirementsToWorkItems","type":"post_deploy","intro_on_current_branch":false},"20220906074449":{"version":20220906074449,"path":"db/post_migrate/20220906074449_schedule_disable_legacy_open_source_license_for_projects_less_than_one_mb.rb","name":"ScheduleDisableLegacyOpenSourceLicenseForProjectsLessThanOneMb","type":"post_deploy","intro_on_current_branch":false},"20211110151350":{"version":20211110151350,"path":"db/post_migrate/20211110151350_schedule_drop_invalid_security_findings.rb","name":"ScheduleDropInvalidSecurityFindings","type":"post_deploy","intro_on_current_branch":false},"20220208080921":{"version":20220208080921,"path":"db/post_migrate/20220208080921_schedule_migrate_personal_namespace_project_maintainer_to_owner.rb","name":"ScheduleMigratePersonalNamespaceProjectMaintainerToOwner","type":"post_deploy","intro_on_current_branch":false},"20220324165436":{"version":20220324165436,"path":"db/post_migrate/20220324165436_schedule_backfill_project_settings.rb","name":"ScheduleBackfillProjectSettings","type":"post_deploy","intro_on_current_branch":false},"20220621192541":{"version":20220621192541,"path":"db/post_migrate/20220621192541_add_project_id_state_severity_default_branch_index_for_vulnerabilities.rb","name":"AddProjectIdStateSeverityDefaultBranchIndexForVulnerabilities","type":"post_deploy","intro_on_current_branch":false},"20220204095121":{"version":20220204095121,"path":"db/post_migrate/20220204095121_backfill_namespace_statistics_with_dependency_proxy_size.rb","name":"BackfillNamespaceStatisticsWithDependencyProxySize","type":"post_deploy","intro_on_current_branch":false},"20210930211936":{"version":20210930211936,"path":"db/post_migrate/20210930211936_backfill_user_namespace.rb","name":"BackfillUserNamespace","type":"post_deploy","intro_on_current_branch":false},"20220525221133":{"version":20220525221133,"path":"db/post_migrate/20220525221133_schedule_backfill_vulnerability_reads_cluster_agent.rb","name":"ScheduleBackfillVulnerabilityReadsClusterAgent","type":"post_deploy","intro_on_current_branch":false},"20220510192117":{"version":20220510192117,"path":"db/post_migrate/20220510192117_index_expirable_unknown_artifacts_for_removal.rb","name":"IndexExpirableUnknownArtifactsForRemoval","type":"post_deploy","intro_on_current_branch":false},"20210806131706":{"version":20210806131706,"path":"db/post_migrate/20210806131706_finalize_taggins_bigint_conversion.rb","name":"FinalizeTagginsBigintConversion","type":"post_deploy","intro_on_current_branch":false},"20210706142819":{"version":20210706142819,"path":"db/post_migrate/20210706142819_re_schedule_latest_pipeline_id_population.rb","name":"ReScheduleLatestPipelineIdPopulation","type":"post_deploy","intro_on_current_branch":false},"20210922084115":{"version":20210922084115,"path":"db/post_migrate/20210922084115_concurrent_index_resource_group_status_commit_id_for_ci_builds.rb","name":"ConcurrentIndexResourceGroupStatusCommitIdForCiBuilds","type":"post_deploy","intro_on_current_branch":false},"20220124130028":{"version":20220124130028,"path":"db/post_migrate/20220124130028_dedup_runner_projects.rb","name":"DedupRunnerProjects","type":"post_deploy","intro_on_current_branch":false},"20220908125146":{"version":20220908125146,"path":"db/post_migrate/20220908125146_remove_free_user_cap_remediation_worker.rb","name":"RemoveFreeUserCapRemediationWorker","type":"post_deploy","intro_on_current_branch":false},"20220222192525":{"version":20220222192525,"path":"db/post_migrate/20220222192525_remove_null_releases.rb","name":"RemoveNullReleases","type":"post_deploy","intro_on_current_branch":false},"20220916112841":{"version":20220916112841,"path":"db/post_migrate/20220916112841_remove_unused_aggregation_columns.rb","name":"RemoveUnusedAggregationColumns","type":"post_deploy","intro_on_current_branch":false},"20220310134207":{"version":20220310134207,"path":"db/post_migrate/20220310134207_add_index_project_id_and_released_at_and_id_on_releases.rb","name":"AddIndexProjectIdAndReleasedAtAndIdOnReleases","type":"post_deploy","intro_on_current_branch":false},"20210420103955":{"version":20210420103955,"path":"db/post_migrate/20210420103955_remove_hipchat_service_records.rb","name":"RemoveHipchatServiceRecords","type":"post_deploy","intro_on_current_branch":false},"20220923052531":{"version":20220923052531,"path":"db/post_migrate/20220923052531_remove_tmp_index_merge_request_reviewers_on_attention_requested_state.rb","name":"RemoveTmpIndexMergeRequestReviewersOnAttentionRequestedState","type":"post_deploy","intro_on_current_branch":false},"20210413092922":{"version":20210413092922,"path":"db/post_migrate/20210413092922_add_index_to_packages_maven_metadata_path.rb","name":"AddIndexToPackagesMavenMetadataPath","type":"post_deploy","intro_on_current_branch":false},"20220809223215":{"version":20220809223215,"path":"db/post_migrate/20220809223215_change_task_system_note_wording_to_checklist_item.rb","name":"ChangeTaskSystemNoteWordingToChecklistItem","type":"post_deploy","intro_on_current_branch":false},"20220222192524":{"version":20220222192524,"path":"db/post_migrate/20220222192524_create_not_null_constraint_releases_tag.rb","name":"CreateNotNullConstraintReleasesTag","type":"post_deploy","intro_on_current_branch":false},"20210514063252":{"version":20210514063252,"path":"db/post_migrate/20210514063252_schedule_cleanup_orphaned_lfs_objects_projects.rb","name":"ScheduleCleanupOrphanedLfsObjectsProjects","type":"post_deploy","intro_on_current_branch":false},"20211004120135":{"version":20211004120135,"path":"db/post_migrate/20211004120135_schedule_add_primary_email_to_emails_if_user_confirmed.rb","name":"ScheduleAddPrimaryEmailToEmailsIfUserConfirmed","type":"post_deploy","intro_on_current_branch":false},"20220610223040":{"version":20220610223040,"path":"db/post_migrate/20220610223040_add_index_on_available_pypi_packages.rb","name":"AddIndexOnAvailablePypiPackages","type":"post_deploy","intro_on_current_branch":false},"20210705143150":{"version":20210705143150,"path":"db/post_migrate/20210705143150_backfill_ci_builds_metadata_id_for_bigint_conversion.rb","name":"BackfillCiBuildsMetadataIdForBigintConversion","type":"post_deploy","intro_on_current_branch":false},"20220322035654":{"version":20220322035654,"path":"db/post_migrate/20220322035654_add_migration_plan_index_to_container_repositories.rb","name":"AddMigrationPlanIndexToContainerRepositories","type":"post_deploy","intro_on_current_branch":false},"20220207080758":{"version":20220207080758,"path":"db/post_migrate/20220207080758_update_api_indexes_for_projects.rb","name":"UpdateApiIndexesForProjects","type":"post_deploy","intro_on_current_branch":false},"20211005010101":{"version":20211005010101,"path":"db/post_migrate/20211005010101_rereschedule_delete_orphaned_deployments.rb","name":"RerescheduleDeleteOrphanedDeployments","type":"post_deploy","intro_on_current_branch":false},"20220322094410":{"version":20220322094410,"path":"db/post_migrate/20220322094410_remove_wiki_notes.rb","name":"RemoveWikiNotes","type":"post_deploy","intro_on_current_branch":false},"20210518001450":{"version":20210518001450,"path":"db/post_migrate/20210518001450_backfill_clusters_integration_elastic_stack_enabled.rb","name":"BackfillClustersIntegrationElasticStackEnabled","type":"post_deploy","intro_on_current_branch":false},"20220721140252":{"version":20220721140252,"path":"db/post_migrate/20220721140252_prepare_partial_trigram_indexes_for_issues.rb","name":"PreparePartialTrigramIndexesForIssues","type":"post_deploy","intro_on_current_branch":false},"20210812013042":{"version":20210812013042,"path":"db/post_migrate/20210812013042_remove_duplicate_project_authorizations.rb","name":"RemoveDuplicateProjectAuthorizations","type":"post_deploy","intro_on_current_branch":false},"20211031152417":{"version":20211031152417,"path":"db/post_migrate/20211031152417_add_indexes_to_issue_stage_events.rb","name":"AddIndexesToIssueStageEvents","type":"post_deploy","intro_on_current_branch":false},"20220614185644":{"version":20220614185644,"path":"db/post_migrate/20220614185644_update_index_vulnerabilities_project_id_id.rb","name":"UpdateIndexVulnerabilitiesProjectIdId","type":"post_deploy","intro_on_current_branch":false},"20220913030552":{"version":20220913030552,"path":"db/post_migrate/20220913030552_add_tmp_index_system_note_metadata_on_attention_request_actions.rb","name":"AddTmpIndexSystemNoteMetadataOnAttentionRequestActions","type":"post_deploy","intro_on_current_branch":false},"20210802043253":{"version":20210802043253,"path":"db/post_migrate/20210802043253_finalize_push_event_payloads_bigint_conversion_3.rb","name":"FinalizePushEventPayloadsBigintConversion3","type":"post_deploy","intro_on_current_branch":false},"20220316165539":{"version":20220316165539,"path":"db/post_migrate/20220316165539_add_index_to_vulnerabilities.rb","name":"AddIndexToVulnerabilities","type":"post_deploy","intro_on_current_branch":false},"20211215090620":{"version":20211215090620,"path":"db/post_migrate/20211215090620_schedule_update_timelogs_null_spent_at.rb","name":"ScheduleUpdateTimelogsNullSpentAt","type":"post_deploy","intro_on_current_branch":false},"20220126203421":{"version":20220126203421,"path":"db/post_migrate/20220126203421_remove_projects_ci_pipeline_schedules_project_id_fk.rb","name":"RemoveProjectsCiPipelineSchedulesProjectIdFk","type":"post_deploy","intro_on_current_branch":false},"20211013125341":{"version":20211013125341,"path":"db/post_migrate/20211013125341_create_index_security_ci_builds_on_name_and_id_parser_features.rb","name":"CreateIndexSecurityCiBuildsOnNameAndIdParserFeatures","type":"post_deploy","intro_on_current_branch":false},"20211203091642":{"version":20211203091642,"path":"db/post_migrate/20211203091642_add_index_to_projects_on_marked_for_deletion_at.rb","name":"AddIndexToProjectsOnMarkedForDeletionAt","type":"post_deploy","intro_on_current_branch":false},"20220119153706":{"version":20220119153706,"path":"db/post_migrate/20220119153706_remove_ci_pipelines_merge_trains_pipeline_id_fk.rb","name":"RemoveCiPipelinesMergeTrainsPipelineIdFk","type":"post_deploy","intro_on_current_branch":false},"20220715191629":{"version":20220715191629,"path":"db/post_migrate/20220715191629_change_primary_key_of_security_findings_table.rb","name":"ChangePrimaryKeyOfSecurityFindingsTable","type":"post_deploy","intro_on_current_branch":false},"20220620132300":{"version":20220620132300,"path":"db/post_migrate/20220620132300_update_last_run_date_for_iterations_cadences.rb","name":"UpdateLastRunDateForIterationsCadences","type":"post_deploy","intro_on_current_branch":false},"20220516103353":{"version":20220516103353,"path":"db/post_migrate/20220516103353_finalize_routes_backfilling_for_projects.rb","name":"FinalizeRoutesBackfillingForProjects","type":"post_deploy","intro_on_current_branch":false},"20210706120847":{"version":20210706120847,"path":"db/post_migrate/20210706120847_remove_framework_column_from_compliance_management_frameworks.rb","name":"RemoveFrameworkColumnFromComplianceManagementFrameworks","type":"post_deploy","intro_on_current_branch":false},"20220110171049":{"version":20220110171049,"path":"db/post_migrate/20220110171049_schedule_populate_test_reports_issue_id.rb","name":"SchedulePopulateTestReportsIssueId","type":"post_deploy","intro_on_current_branch":false},"20210413130011":{"version":20210413130011,"path":"db/post_migrate/20210413130011_add_partitioned_web_hook_log_fk.rb","name":"AddPartitionedWebHookLogFk","type":"post_deploy","intro_on_current_branch":false},"20210729193056":{"version":20210729193056,"path":"db/post_migrate/20210729193056_drop_ci_test_cases_table.rb","name":"DropCiTestCasesTable","type":"post_deploy","intro_on_current_branch":false},"20210909104800":{"version":20210909104800,"path":"db/post_migrate/20210909104800_reschedule_extract_project_topics_into_separate_table_2.rb","name":"RescheduleExtractProjectTopicsIntoSeparateTable2","type":"post_deploy","intro_on_current_branch":false},"20210401131948":{"version":20210401131948,"path":"db/post_migrate/20210401131948_move_container_registry_enabled_to_project_features2.rb","name":"MoveContainerRegistryEnabledToProjectFeatures2","type":"post_deploy","intro_on_current_branch":false},"20220720090354":{"version":20220720090354,"path":"db/post_migrate/20220720090354_remove_pending_builds_covering_index_from_ci_builds.rb","name":"RemovePendingBuildsCoveringIndexFromCiBuilds","type":"post_deploy","intro_on_current_branch":false},"20220315181130":{"version":20220315181130,"path":"db/post_migrate/20220315181130_add_temporary_issue_type_index_for_work_item_types.rb","name":"AddTemporaryIssueTypeIndexForWorkItemTypes","type":"post_deploy","intro_on_current_branch":false},"20211109112454":{"version":20211109112454,"path":"db/post_migrate/20211109112454_drop_old_loose_fk_deleted_records_index.rb","name":"DropOldLooseFkDeletedRecordsIndex","type":"post_deploy","intro_on_current_branch":false},"20220401045621":{"version":20220401045621,"path":"db/post_migrate/20220401045621_remove_state_index_on_merge_request_assignees.rb","name":"RemoveStateIndexOnMergeRequestAssignees","type":"post_deploy","intro_on_current_branch":false},"20220326161803":{"version":20220326161803,"path":"db/post_migrate/20220326161803_add_cascade_delete_fk_on_project_namespace_id.rb","name":"AddCascadeDeleteFkOnProjectNamespaceId","type":"post_deploy","intro_on_current_branch":false},"20220111023852":{"version":20220111023852,"path":"db/post_migrate/20220111023852_index_cluster_agent_tokens_on_status.rb","name":"IndexClusterAgentTokensOnStatus","type":"post_deploy","intro_on_current_branch":false},"20220714122418":{"version":20220714122418,"path":"db/post_migrate/20220714122418_add_async_index_on_security_findings_unique_columns.rb","name":"AddAsyncIndexOnSecurityFindingsUniqueColumns","type":"post_deploy","intro_on_current_branch":false},"20210706112800":{"version":20210706112800,"path":"db/post_migrate/20210706112800_remove_cloud_license_enabled_from_application_settings.rb","name":"RemoveCloudLicenseEnabledFromApplicationSettings","type":"post_deploy","intro_on_current_branch":false},"20220729052031":{"version":20220729052031,"path":"db/post_migrate/20220729052031_add_index_on_vulnerability_reads_namespace_id_with_report_type.rb","name":"AddIndexOnVulnerabilityReadsNamespaceIdWithReportType","type":"post_deploy","intro_on_current_branch":false},"20220525131624":{"version":20220525131624,"path":"db/post_migrate/20220525131624_drop_temporary_index_for_backfill_integrations_enable_ssl_verification.rb","name":"DropTemporaryIndexForBackfillIntegrationsEnableSslVerification","type":"post_deploy","intro_on_current_branch":false},"20210409185501":{"version":20210409185501,"path":"db/post_migrate/20210409185501_index_members_on_user_id_source_id_source_type.rb","name":"IndexMembersOnUserIdSourceIdSourceType","type":"post_deploy","intro_on_current_branch":false},"20220719081542":{"version":20220719081542,"path":"db/post_migrate/20220719081542_drop_queued_at_index_from_ci_builds.rb","name":"DropQueuedAtIndexFromCiBuilds","type":"post_deploy","intro_on_current_branch":false},"20211021141930":{"version":20211021141930,"path":"db/post_migrate/20211021141930_drop_geo_upload_deleted_events_table.rb","name":"DropGeoUploadDeletedEventsTable","type":"post_deploy","intro_on_current_branch":false},"20220518102414":{"version":20220518102414,"path":"db/post_migrate/20220518102414_add_index_to_error_tracking_client_keys.rb","name":"AddIndexToErrorTrackingClientKeys","type":"post_deploy","intro_on_current_branch":false},"20220111102314":{"version":20220111102314,"path":"db/post_migrate/20220111102314_truncate_ci_mirror_tables.rb","name":"TruncateCiMirrorTables","type":"post_deploy","intro_on_current_branch":false},"20211027204011":{"version":20211027204011,"path":"db/post_migrate/20211027204011_remove_index_for_dormant_users.rb","name":"RemoveIndexForDormantUsers","type":"post_deploy","intro_on_current_branch":false},"20220601151900":{"version":20220601151900,"path":"db/post_migrate/20220601151900_schedule_backfill_ci_runner_semver.rb","name":"ScheduleBackfillCiRunnerSemver","type":"post_deploy","intro_on_current_branch":false},"20220503134610":{"version":20220503134610,"path":"db/post_migrate/20220503134610_remove_requirements_management_test_reports_requirement_id.rb","name":"RemoveRequirementsManagementTestReportsRequirementId","type":"post_deploy","intro_on_current_branch":false},"20220112232723":{"version":20220112232723,"path":"db/post_migrate/20220112232723_remove_projects_ci_daily_build_group_report_results_project_id_fk.rb","name":"RemoveProjectsCiDailyBuildGroupReportResultsProjectIdFk","type":"post_deploy","intro_on_current_branch":false},"20211102114802":{"version":20211102114802,"path":"db/post_migrate/20211102114802_update_vulnerability_occurrences_location.rb","name":"UpdateVulnerabilityOccurrencesLocation","type":"post_deploy","intro_on_current_branch":false},"20220504084136":{"version":20220504084136,"path":"db/post_migrate/20220504084136_drop_temporary_indexes_for_primary_email_post_regression_cleanup.rb","name":"DropTemporaryIndexesForPrimaryEmailPostRegressionCleanup","type":"post_deploy","intro_on_current_branch":false},"20210311093723":{"version":20210311093723,"path":"db/post_migrate/20210311093723_add_partial_index_on_ci_pipelines_by_cancelable_status_and_users.rb","name":"AddPartialIndexOnCiPipelinesByCancelableStatusAndUsers","type":"post_deploy","intro_on_current_branch":false},"20220510003916":{"version":20220510003916,"path":"db/post_migrate/20220510003916_remove_tmp_empty_traversal_ids_root_namespace_index.rb","name":"RemoveTmpEmptyTraversalIdsRootNamespaceIndex","type":"post_deploy","intro_on_current_branch":false},"20220111002756":{"version":20220111002756,"path":"db/post_migrate/20220111002756_remove_security_scans_build_id_fk.rb","name":"RemoveSecurityScansBuildIdFk","type":"post_deploy","intro_on_current_branch":false},"20210706115312":{"version":20210706115312,"path":"db/post_migrate/20210706115312_add_upvotes_count_index_to_issues.rb","name":"AddUpvotesCountIndexToIssues","type":"post_deploy","intro_on_current_branch":false},"20220513043344":{"version":20220513043344,"path":"db/post_migrate/20220513043344_reschedule_expire_o_auth_tokens.rb","name":"RescheduleExpireOAuthTokens","type":"post_deploy","intro_on_current_branch":false},"20210317155207":{"version":20210317155207,"path":"db/post_migrate/20210317155207_validate_not_null_constraint_on_cluster_token_name.rb","name":"ValidateNotNullConstraintOnClusterTokenName","type":"post_deploy","intro_on_current_branch":false},"20220628110823":{"version":20220628110823,"path":"db/post_migrate/20220628110823_add_issues_namespace_id_fk_and_index.rb","name":"AddIssuesNamespaceIdFkAndIndex","type":"post_deploy","intro_on_current_branch":false},"20211207081708":{"version":20211207081708,"path":"db/post_migrate/20211207081708_add_index_ci_job_artifacts_project_id_file_type.rb","name":"AddIndexCiJobArtifactsProjectIdFileType","type":"post_deploy","intro_on_current_branch":false},"20210505092746":{"version":20210505092746,"path":"db/post_migrate/20210505092746_create_partial_covering_index_for_pending_builds.rb","name":"CreatePartialCoveringIndexForPendingBuilds","type":"post_deploy","intro_on_current_branch":false},"20220503114353":{"version":20220503114353,"path":"db/post_migrate/20220503114353_prepare_confidential_note_index.rb","name":"PrepareConfidentialNoteIndex","type":"post_deploy","intro_on_current_branch":false},"20220124145019":{"version":20220124145019,"path":"db/post_migrate/20220124145019_remove_projects_external_pull_requests_project_id_fk.rb","name":"RemoveProjectsExternalPullRequestsProjectIdFk","type":"post_deploy","intro_on_current_branch":false},"20220713133515":{"version":20220713133515,"path":"db/post_migrate/20220713133515_cleanup_backfill_draft_statuses_on_merge_requests.rb","name":"CleanupBackfillDraftStatusesOnMergeRequests","type":"post_deploy","intro_on_current_branch":false},"20210806011811":{"version":20210806011811,"path":"db/post_migrate/20210806011811_schedule_backfill_draft_column_on_merge_requests_rerun.rb","name":"ScheduleBackfillDraftColumnOnMergeRequestsRerun","type":"post_deploy","intro_on_current_branch":false},"20211026070408":{"version":20211026070408,"path":"db/post_migrate/20211026070408_backfill_issue_search_data.rb","name":"BackfillIssueSearchData","type":"post_deploy","intro_on_current_branch":false},"20220322205008":{"version":20220322205008,"path":"db/post_migrate/20220322205008_change_search_rate_limit_values.rb","name":"ChangeSearchRateLimitValues","type":"post_deploy","intro_on_current_branch":false},"20220920213504":{"version":20220920213504,"path":"db/post_migrate/20220920213504_finalize_task_system_note_renaming.rb","name":"FinalizeTaskSystemNoteRenaming","type":"post_deploy","intro_on_current_branch":false},"20220904173342":{"version":20220904173342,"path":"db/post_migrate/20220904173342_validate_not_null_constraint_board_group_recent_visits.rb","name":"ValidateNotNullConstraintBoardGroupRecentVisits","type":"post_deploy","intro_on_current_branch":false},"20220124153234":{"version":20220124153234,"path":"db/post_migrate/20220124153234_re_remove_projects_ci_job_artifacts_project_id_fk.rb","name":"ReRemoveProjectsCiJobArtifactsProjectIdFk","type":"post_deploy","intro_on_current_branch":false},"20220126210022":{"version":20220126210022,"path":"db/post_migrate/20220126210022_re_remove_projects_ci_builds_project_id_fk.rb","name":"ReRemoveProjectsCiBuildsProjectIdFk","type":"post_deploy","intro_on_current_branch":false},"20220316112118":{"version":20220316112118,"path":"db/post_migrate/20220316112118_update_organizations_name_index_add_id.rb","name":"UpdateOrganizationsNameIndexAddId","type":"post_deploy","intro_on_current_branch":false},"20220316102902":{"version":20220316102902,"path":"db/post_migrate/20220316102902_add_user_foreign_key_to_deploy_tokens.rb","name":"AddUserForeignKeyToDeployTokens","type":"post_deploy","intro_on_current_branch":false},"20220617073407":{"version":20220617073407,"path":"db/post_migrate/20220617073407_add_index_for_open_issues_count.rb","name":"AddIndexForOpenIssuesCount","type":"post_deploy","intro_on_current_branch":false},"20220307192610":{"version":20220307192610,"path":"db/post_migrate/20220307192610_remove_duplicate_project_tag_releases.rb","name":"RemoveDuplicateProjectTagReleases","type":"post_deploy","intro_on_current_branch":false},"20210407150240":{"version":20210407150240,"path":"db/post_migrate/20210407150240_confirm_support_bot_user.rb","name":"ConfirmSupportBotUser","type":"post_deploy","intro_on_current_branch":false},"20210722055217":{"version":20210722055217,"path":"db/post_migrate/20210722055217_add_updated_at_index_on_merge_requests.rb","name":"AddUpdatedAtIndexOnMergeRequests","type":"post_deploy","intro_on_current_branch":false},"20210811122206":{"version":20210811122206,"path":"db/post_migrate/20210811122206_update_external_project_bots.rb","name":"UpdateExternalProjectBots","type":"post_deploy","intro_on_current_branch":false},"20220331133802":{"version":20220331133802,"path":"db/post_migrate/20220331133802_schedule_backfill_topics_title.rb","name":"ScheduleBackfillTopicsTitle","type":"post_deploy","intro_on_current_branch":false},"20220725150127":{"version":20220725150127,"path":"db/post_migrate/20220725150127_update_jira_tracker_data_deployment_type_based_on_url.rb","name":"UpdateJiraTrackerDataDeploymentTypeBasedOnUrl","type":"post_deploy","intro_on_current_branch":false},"20220830051704":{"version":20220830051704,"path":"db/post_migrate/20220830051704_add_temporary_index_for_orphaned_invited_members.rb","name":"AddTemporaryIndexForOrphanedInvitedMembers","type":"post_deploy","intro_on_current_branch":false},"20220120094340":{"version":20220120094340,"path":"db/post_migrate/20220120094340_drop_position_from_security_findings.rb","name":"DropPositionFromSecurityFindings","type":"post_deploy","intro_on_current_branch":false},"20220511152439":{"version":20220511152439,"path":"db/post_migrate/20220511152439_remove_not_null_constraint_from_work_item_type.rb","name":"RemoveNotNullConstraintFromWorkItemType","type":"post_deploy","intro_on_current_branch":false},"20211118130836":{"version":20211118130836,"path":"db/post_migrate/20211118130836_drop_pages_deployments_builds_fk.rb","name":"DropPagesDeploymentsBuildsFk","type":"post_deploy","intro_on_current_branch":false},"20220401045642":{"version":20220401045642,"path":"db/post_migrate/20220401045642_remove_state_index_on_merge_request_reviewers.rb","name":"RemoveStateIndexOnMergeRequestReviewers","type":"post_deploy","intro_on_current_branch":false},"20211028085926":{"version":20211028085926,"path":"db/post_migrate/20211028085926_add_occurrence_id_id_desc_index_to_vulnerability_occurrence_pipelines.rb","name":"AddOccurrenceIdIdDescIndexToVulnerabilityOccurrencePipelines","type":"post_deploy","intro_on_current_branch":false},"20220412143552":{"version":20220412143552,"path":"db/post_migrate/20220412143552_consume_remaining_encrypt_integration_property_jobs.rb","name":"ConsumeRemainingEncryptIntegrationPropertyJobs","type":"post_deploy","intro_on_current_branch":false},"20220707105529":{"version":20220707105529,"path":"db/post_migrate/20220707105529_cleanup_chat_name_service_id.rb","name":"CleanupChatNameServiceId","type":"post_deploy","intro_on_current_branch":false},"20210906130643":{"version":20210906130643,"path":"db/post_migrate/20210906130643_drop_temporary_columns_and_triggers_for_taggings.rb","name":"DropTemporaryColumnsAndTriggersForTaggings","type":"post_deploy","intro_on_current_branch":false},"20210330091751":{"version":20210330091751,"path":"db/post_migrate/20210330091751_remove_records_without_group_from_webhooks_table.rb","name":"RemoveRecordsWithoutGroupFromWebhooksTable","type":"post_deploy","intro_on_current_branch":false},"20220128155251":{"version":20220128155251,"path":"db/post_migrate/20220128155251_remove_dangling_running_builds.rb","name":"RemoveDanglingRunningBuilds","type":"post_deploy","intro_on_current_branch":false},"20211230112517":{"version":20211230112517,"path":"db/post_migrate/20211230112517_remove_index_events_on_author_id_and_action_and_id.rb","name":"RemoveIndexEventsOnAuthorIdAndActionAndId","type":"post_deploy","intro_on_current_branch":false},"20220722145845":{"version":20220722145845,"path":"db/post_migrate/20220722145845_schedule_backfilling_the_namespace_id_for_vulnerability_reads.rb","name":"ScheduleBackfillingTheNamespaceIdForVulnerabilityReads","type":"post_deploy","intro_on_current_branch":false},"20220629124942":{"version":20220629124942,"path":"db/post_migrate/20220629124942_remove_vulnerability_occurrences_migrated_to_new_structure_column.rb","name":"RemoveVulnerabilityOccurrencesMigratedToNewStructureColumn","type":"post_deploy","intro_on_current_branch":false},"20220920141001":{"version":20220920141001,"path":"db/post_migrate/20220920141001_add_index_on_internal_notes.rb","name":"AddIndexOnInternalNotes","type":"post_deploy","intro_on_current_branch":false},"20220517101119":{"version":20220517101119,"path":"db/post_migrate/20220517101119_create_confidential_notes_index_synchronously.rb","name":"CreateConfidentialNotesIndexSynchronously","type":"post_deploy","intro_on_current_branch":false},"20220830172142":{"version":20220830172142,"path":"db/post_migrate/20220830172142_reschedule_issue_work_item_type_id_backfill.rb","name":"RescheduleIssueWorkItemTypeIdBackfill","type":"post_deploy","intro_on_current_branch":false},"20210809123658":{"version":20210809123658,"path":"db/post_migrate/20210809123658_orphaned_invite_tokens_cleanup.rb","name":"OrphanedInviteTokensCleanup","type":"post_deploy","intro_on_current_branch":false},"20220324110247":{"version":20220324110247,"path":"db/post_migrate/20220324110247_untrack_deletions_on_ci_job_artifacts.rb","name":"UntrackDeletionsOnCiJobArtifacts","type":"post_deploy","intro_on_current_branch":false},"20210825193652":{"version":20210825193652,"path":"db/post_migrate/20210825193652_backfill_cadence_id_for_boards_scoped_to_iteration.rb","name":"BackfillCadenceIdForBoardsScopedToIteration","type":"post_deploy","intro_on_current_branch":false},"20220201141705":{"version":20220201141705,"path":"db/post_migrate/20220201141705_cleanup_background_migration_populate_test_reports_issue_id.rb","name":"CleanupBackgroundMigrationPopulateTestReportsIssueId","type":"post_deploy","intro_on_current_branch":false},"20211213064821":{"version":20211213064821,"path":"db/post_migrate/20211213064821_add_agent_id_location_index_to_vulnerability_occurrences.rb","name":"AddAgentIdLocationIndexToVulnerabilityOccurrences","type":"post_deploy","intro_on_current_branch":false},"20220617123034":{"version":20220617123034,"path":"db/post_migrate/20220617123034_add_unique_index_on_projects_on_runners_token_encrypted.rb","name":"AddUniqueIndexOnProjectsOnRunnersTokenEncrypted","type":"post_deploy","intro_on_current_branch":false},"20220804235614":{"version":20220804235614,"path":"db/post_migrate/20220804235614_add_comment_to_vulnerability_state_transitions.rb","name":"AddCommentToVulnerabilityStateTransitions","type":"post_deploy","intro_on_current_branch":false},"20210909152027":{"version":20210909152027,"path":"db/post_migrate/20210909152027_remove_container_registry_enabled.rb","name":"RemoveContainerRegistryEnabled","type":"post_deploy","intro_on_current_branch":false},"20210306121310":{"version":20210306121310,"path":"db/post_migrate/20210306121310_backfill_partitioned_web_hook_logs.rb","name":"BackfillPartitionedWebHookLogs","type":"post_deploy","intro_on_current_branch":false},"20210721125820":{"version":20210721125820,"path":"db/post_migrate/20210721125820_remove_signing_keys_from_packages_debian_group_distributions.rb","name":"RemoveSigningKeysFromPackagesDebianGroupDistributions","type":"post_deploy","intro_on_current_branch":false},"20220705114635":{"version":20220705114635,"path":"db/post_migrate/20220705114635_drop_index_on_ci_runner_versions_on_version.rb","name":"DropIndexOnCiRunnerVersionsOnVersion","type":"post_deploy","intro_on_current_branch":false},"20220524202158":{"version":20220524202158,"path":"db/post_migrate/20220524202158_drop_index_on_deployments_on_created_at_cluster_id_and_project_id.rb","name":"DropIndexOnDeploymentsOnCreatedAtClusterIdAndProjectId","type":"post_deploy","intro_on_current_branch":false},"20220901184246":{"version":20220901184246,"path":"db/post_migrate/20220901184246_add_not_null_to_board_project_recent_visits.rb","name":"AddNotNullToBoardProjectRecentVisits","type":"post_deploy","intro_on_current_branch":false},"20220119193130":{"version":20220119193130,"path":"db/post_migrate/20220119193130_remove_ci_pipelines_dast_profiles_pipelines_ci_pipeline_id_fk.rb","name":"RemoveCiPipelinesDastProfilesPipelinesCiPipelineIdFk","type":"post_deploy","intro_on_current_branch":false},"20220629184402":{"version":20220629184402,"path":"db/post_migrate/20220629184402_unset_escalation_policies_for_alert_incidents.rb","name":"UnsetEscalationPoliciesForAlertIncidents","type":"post_deploy","intro_on_current_branch":false},"20220621082245":{"version":20220621082245,"path":"db/post_migrate/20220621082245_remove_tmp_index_on_routes_namespace_id_column.rb","name":"RemoveTmpIndexOnRoutesNamespaceIdColumn","type":"post_deploy","intro_on_current_branch":false},"20220825142324":{"version":20220825142324,"path":"db/post_migrate/20220825142324_replace_issues_authorization_index.rb","name":"ReplaceIssuesAuthorizationIndex","type":"post_deploy","intro_on_current_branch":false},"20220412044906":{"version":20220412044906,"path":"db/post_migrate/20220412044906_finalize_traversal_ids_background_migrations.rb","name":"FinalizeTraversalIdsBackgroundMigrations","type":"post_deploy","intro_on_current_branch":false},"20220126210021":{"version":20220126210021,"path":"db/post_migrate/20220126210021_remove_projects_ci_builds_project_id_fk.rb","name":"RemoveProjectsCiBuildsProjectIdFk","type":"post_deploy","intro_on_current_branch":false},"20220202105733":{"version":20220202105733,"path":"db/post_migrate/20220202105733_delete_service_template_records.rb","name":"DeleteServiceTemplateRecords","type":"post_deploy","intro_on_current_branch":false},"20210610102413":{"version":20210610102413,"path":"db/post_migrate/20210610102413_migrate_protected_attribute_to_pending_builds.rb","name":"MigrateProtectedAttributeToPendingBuilds","type":"post_deploy","intro_on_current_branch":false},"20220919050555":{"version":20220919050555,"path":"db/post_migrate/20220919050555_drop_tmp_index_user_callouts_on_attention_request_feature_names.rb","name":"DropTmpIndexUserCalloutsOnAttentionRequestFeatureNames","type":"post_deploy","intro_on_current_branch":false},"20211028155449":{"version":20211028155449,"path":"db/post_migrate/20211028155449_schedule_fix_merge_request_diff_commit_users_migration.rb","name":"ScheduleFixMergeRequestDiffCommitUsersMigration","type":"post_deploy","intro_on_current_branch":false},"20211130201101":{"version":20211130201101,"path":"db/post_migrate/20211130201101_track_deletions_in_projects.rb","name":"TrackDeletionsInProjects","type":"post_deploy","intro_on_current_branch":false},"20220609195803":{"version":20220609195803,"path":"db/post_migrate/20220609195803_remove_deployment_clusters_cluster_id_fk.rb","name":"RemoveDeploymentClustersClusterIdFk","type":"post_deploy","intro_on_current_branch":false},"20210415074645":{"version":20210415074645,"path":"db/post_migrate/20210415074645_index_members_on_user_id_access_level_requested_at_is_null.rb","name":"IndexMembersOnUserIdAccessLevelRequestedAtIsNull","type":"post_deploy","intro_on_current_branch":false},"20211004110927":{"version":20211004110927,"path":"db/post_migrate/20211004110927_schedule_fix_first_mentioned_in_commit_at_job.rb","name":"ScheduleFixFirstMentionedInCommitAtJob","type":"post_deploy","intro_on_current_branch":false},"20220310141349":{"version":20220310141349,"path":"db/post_migrate/20220310141349_remove_dependency_list_usage_data_from_redis.rb","name":"RemoveDependencyListUsageDataFromRedis","type":"post_deploy","intro_on_current_branch":false},"20211004110500":{"version":20211004110500,"path":"db/post_migrate/20211004110500_add_temporary_index_to_issue_metrics.rb","name":"AddTemporaryIndexToIssueMetrics","type":"post_deploy","intro_on_current_branch":false},"20220325155953":{"version":20220325155953,"path":"db/post_migrate/20220325155953_steal_background_job_for_fixing_conflicting_project_names_and_paths.rb","name":"StealBackgroundJobForFixingConflictingProjectNamesAndPaths","type":"post_deploy","intro_on_current_branch":false},"20210804151444":{"version":20210804151444,"path":"db/post_migrate/20210804151444_prepare_indexes_for_ci_job_artifact_bigint_conversion.rb","name":"PrepareIndexesForCiJobArtifactBigintConversion","type":"post_deploy","intro_on_current_branch":false},"20211027112901":{"version":20211027112901,"path":"db/post_migrate/20211027112901_drop_index_keys_on_expires_at_and_before_expiry_notification_undelivered.rb","name":"DropIndexKeysOnExpiresAtAndBeforeExpiryNotificationUndelivered","type":"post_deploy","intro_on_current_branch":false},"20210421163509":{"version":20210421163509,"path":"db/post_migrate/20210421163509_schedule_update_jira_tracker_data_deployment_type_based_on_url.rb","name":"ScheduleUpdateJiraTrackerDataDeploymentTypeBasedOnUrl","type":"post_deploy","intro_on_current_branch":false},"20220308115219":{"version":20220308115219,"path":"db/post_migrate/20220308115219_schedule_reset_duplicate_ci_runners_token_encrypted_values_on_projects.rb","name":"ScheduleResetDuplicateCiRunnersTokenEncryptedValuesOnProjects","type":"post_deploy","intro_on_current_branch":false},"20220921111857":{"version":20220921111857,"path":"db/post_migrate/20220921111857_remove_and_add_ci_pipeline_schedule_variables_raw_with_new_default.rb","name":"RemoveAndAddCiPipelineScheduleVariablesRawWithNewDefault","type":"post_deploy","intro_on_current_branch":false},"20220524080944":{"version":20220524080944,"path":"db/post_migrate/20220524080944_cleanup_orphaned_routes.rb","name":"CleanupOrphanedRoutes","type":"post_deploy","intro_on_current_branch":false},"20220104060049":{"version":20220104060049,"path":"db/post_migrate/20220104060049_remove_foreign_key_ci_group_variables_group_id.rb","name":"RemoveForeignKeyCiGroupVariablesGroupId","type":"post_deploy","intro_on_current_branch":false},"20220617142124":{"version":20220617142124,"path":"db/post_migrate/20220617142124_add_index_on_installable_package_files.rb","name":"AddIndexOnInstallablePackageFiles","type":"post_deploy","intro_on_current_branch":false},"20210713042000":{"version":20210713042000,"path":"db/post_migrate/20210713042000_fix_ci_sources_pipelines_index_names.rb","name":"FixCiSourcesPipelinesIndexNames","type":"post_deploy","intro_on_current_branch":false},"20220307192534":{"version":20220307192534,"path":"db/post_migrate/20220307192534_create_index_for_remove_duplicate_project_tag_releases.rb","name":"CreateIndexForRemoveDuplicateProjectTagReleases","type":"post_deploy","intro_on_current_branch":false},"20210714015537":{"version":20210714015537,"path":"db/post_migrate/20210714015537_finalize_ci_build_trace_chunks_bigint_conversion.rb","name":"FinalizeCiBuildTraceChunksBigintConversion","type":"post_deploy","intro_on_current_branch":false},"20210430130259":{"version":20210430130259,"path":"db/post_migrate/20210430130259_remove_obsolete_segments_field.rb","name":"RemoveObsoleteSegmentsField","type":"post_deploy","intro_on_current_branch":false},"20220506124021":{"version":20220506124021,"path":"db/post_migrate/20220506124021_schedule_populate_requirements_issue_id.rb","name":"SchedulePopulateRequirementsIssueId","type":"post_deploy","intro_on_current_branch":false},"20220225133705":{"version":20220225133705,"path":"db/post_migrate/20220225133705_cleanup_backfill_ci_queuing_tables.rb","name":"CleanupBackfillCiQueuingTables","type":"post_deploy","intro_on_current_branch":false},"20220706070804":{"version":20220706070804,"path":"db/post_migrate/20220706070804_drop_clusters_applications_elastic_stacks_table.rb","name":"DropClustersApplicationsElasticStacksTable","type":"post_deploy","intro_on_current_branch":false},"20220119144458":{"version":20220119144458,"path":"db/post_migrate/20220119144458_remove_users_ci_triggers_owner_id_fk.rb","name":"RemoveUsersCiTriggersOwnerIdFk","type":"post_deploy","intro_on_current_branch":false},"20220816163444":{"version":20220816163444,"path":"db/post_migrate/20220816163444_update_start_date_for_iterations_cadences.rb","name":"UpdateStartDateForIterationsCadences","type":"post_deploy","intro_on_current_branch":false},"20220328100457":{"version":20220328100457,"path":"db/post_migrate/20220328100457_schedule20220328_reset_duplicate_ci_runners_token_values_on_projects.rb","name":"Schedule20220328ResetDuplicateCiRunnersTokenValuesOnProjects","type":"post_deploy","intro_on_current_branch":false},"20220128155814":{"version":20220128155814,"path":"db/post_migrate/20220128155814_fix_approval_rules_code_owners_rule_type_index.rb","name":"FixApprovalRulesCodeOwnersRuleTypeIndex","type":"post_deploy","intro_on_current_branch":false},"20220913030624":{"version":20220913030624,"path":"db/post_migrate/20220913030624_cleanup_attention_request_related_system_notes.rb","name":"CleanupAttentionRequestRelatedSystemNotes","type":"post_deploy","intro_on_current_branch":false},"20220706132238":{"version":20220706132238,"path":"db/post_migrate/20220706132238_add_indices_on_security_scans_info_column.rb","name":"AddIndicesOnSecurityScansInfoColumn","type":"post_deploy","intro_on_current_branch":false},"20210614124111":{"version":20210614124111,"path":"db/post_migrate/20210614124111_add_devops_adoption_sast_dast_indexes.rb","name":"AddDevopsAdoptionSastDastIndexes","type":"post_deploy","intro_on_current_branch":false},"20210804154407":{"version":20210804154407,"path":"db/post_migrate/20210804154407_prepare_indexes_for_ci_stage_bigint_conversion.rb","name":"PrepareIndexesForCiStageBigintConversion","type":"post_deploy","intro_on_current_branch":false},"20210622045705":{"version":20210622045705,"path":"db/post_migrate/20210622045705_finalize_events_bigint_conversion.rb","name":"FinalizeEventsBigintConversion","type":"post_deploy","intro_on_current_branch":false},"20210915202900":{"version":20210915202900,"path":"db/post_migrate/20210915202900_prepare_index_resource_group_status_commit_id_for_ci_builds.rb","name":"PrepareIndexResourceGroupStatusCommitIdForCiBuilds","type":"post_deploy","intro_on_current_branch":false},"20220526042017":{"version":20220526042017,"path":"db/post_migrate/20220526042017_remove_geo_lfs_object_deleted_event_references.rb","name":"RemoveGeoLfsObjectDeletedEventReferences","type":"post_deploy","intro_on_current_branch":false},"20220113013319":{"version":20220113013319,"path":"db/post_migrate/20220113013319_remove_projects_ci_freeze_periods_project_id_fk.rb","name":"RemoveProjectsCiFreezePeriodsProjectIdFk","type":"post_deploy","intro_on_current_branch":false},"20220902204048":{"version":20220902204048,"path":"db/post_migrate/20220902204048_move_security_findings_table_to_gitlab_partitions_dynamic_schema.rb","name":"MoveSecurityFindingsTableToGitlabPartitionsDynamicSchema","type":"post_deploy","intro_on_current_branch":false},"20210423160427":{"version":20210423160427,"path":"db/post_migrate/20210423160427_schedule_drop_invalid_vulnerabilities.rb","name":"ScheduleDropInvalidVulnerabilities","type":"post_deploy","intro_on_current_branch":false},"20220328100456":{"version":20220328100456,"path":"db/post_migrate/20220328100456_schedule20220328_reset_duplicate_ci_runners_token_encrypted_values_on_projects.rb","name":"Schedule20220328ResetDuplicateCiRunnersTokenEncryptedValuesOnProjects","type":"post_deploy","intro_on_current_branch":false},"20210629101712":{"version":20210629101712,"path":"db/post_migrate/20210629101712_remove_deprecated_modsecurity_columns.rb","name":"RemoveDeprecatedModsecurityColumns","type":"post_deploy","intro_on_current_branch":false},"20220531024142":{"version":20220531024142,"path":"db/post_migrate/20220531024142_track_clusters_deletions.rb","name":"TrackClustersDeletions","type":"post_deploy","intro_on_current_branch":false},"20220325000001":{"version":20220325000001,"path":"db/post_migrate/20220325000001_finalize_index_for_ci_job_artifacts_unlocked_with_expire_at.rb","name":"FinalizeIndexForCiJobArtifactsUnlockedWithExpireAt","type":"post_deploy","intro_on_current_branch":false},"20220111101421":{"version":20220111101421,"path":"db/post_migrate/20220111101421_remove_index_on_merge_request_id.rb","name":"RemoveIndexOnMergeRequestId","type":"post_deploy","intro_on_current_branch":false},"20220831090454":{"version":20220831090454,"path":"db/post_migrate/20220831090454_cleanup_web_hooks_service_id.rb","name":"CleanupWebHooksServiceId","type":"post_deploy","intro_on_current_branch":false},"20220420135946":{"version":20220420135946,"path":"db/post_migrate/20220420135946_update_batched_background_migration_arguments.rb","name":"UpdateBatchedBackgroundMigrationArguments","type":"post_deploy","intro_on_current_branch":false},"20220703182314":{"version":20220703182314,"path":"db/post_migrate/20220703182314_add_check_constraint_for_security_findings_partition_number.rb","name":"AddCheckConstraintForSecurityFindingsPartitionNumber","type":"post_deploy","intro_on_current_branch":false},"20220425121410":{"version":20220425121410,"path":"db/post_migrate/20220425121410_add_temporary_index_for_backfill_integrations_enable_ssl_verification.rb","name":"AddTemporaryIndexForBackfillIntegrationsEnableSslVerification","type":"post_deploy","intro_on_current_branch":false},"20220905112710":{"version":20220905112710,"path":"db/post_migrate/20220905112710_add_async_index_to_todos_to_cover_pending_query.rb","name":"AddAsyncIndexToTodosToCoverPendingQuery","type":"post_deploy","intro_on_current_branch":false},"20220901073300":{"version":20220901073300,"path":"db/post_migrate/20220901073300_remove_partial_trigram_indexes_for_issues.rb","name":"RemovePartialTrigramIndexesForIssues","type":"post_deploy","intro_on_current_branch":false},"20220420061439":{"version":20220420061439,"path":"db/post_migrate/20220420061439_add_notes_null_discussion_id_temp_index.rb","name":"AddNotesNullDiscussionIdTempIndex","type":"post_deploy","intro_on_current_branch":false},"20220909114220":{"version":20220909114220,"path":"db/post_migrate/20220909114220_drop_environments_project_name_lower_pattern_ops_index.rb","name":"DropEnvironmentsProjectNameLowerPatternOpsIndex","type":"post_deploy","intro_on_current_branch":false},"20211011152701":{"version":20211011152701,"path":"db/post_migrate/20211011152701_cleanup_delete_orphaned_deployments_background_migration.rb","name":"CleanupDeleteOrphanedDeploymentsBackgroundMigration","type":"post_deploy","intro_on_current_branch":false},"20220120123800":{"version":20220120123800,"path":"db/post_migrate/20220120123800_backfill_namespace_id_for_namespace_routes.rb","name":"BackfillNamespaceIdForNamespaceRoutes","type":"post_deploy","intro_on_current_branch":false},"20210805192450":{"version":20210805192450,"path":"db/post_migrate/20210805192450_update_trial_plans_ci_daily_pipeline_schedule_triggers.rb","name":"UpdateTrialPlansCiDailyPipelineScheduleTriggers","type":"post_deploy","intro_on_current_branch":false},"20211110151320":{"version":20211110151320,"path":"db/post_migrate/20211110151320_add_temporary_index_on_security_findings_uuid.rb","name":"AddTemporaryIndexOnSecurityFindingsUuid","type":"post_deploy","intro_on_current_branch":false},"20210816183304":{"version":20210816183304,"path":"db/post_migrate/20210816183304_schedule_copy_ci_builds_columns_to_security_scans2.rb","name":"ScheduleCopyCiBuildsColumnsToSecurityScans2","type":"post_deploy","intro_on_current_branch":false},"20220831021358":{"version":20220831021358,"path":"db/post_migrate/20220831021358_add_index_on_issue_health_status.rb","name":"AddIndexOnIssueHealthStatus","type":"post_deploy","intro_on_current_branch":false},"20220124151949":{"version":20220124151949,"path":"db/post_migrate/20220124151949_remove_projects_ci_runner_projects_project_id_fk.rb","name":"RemoveProjectsCiRunnerProjectsProjectIdFk","type":"post_deploy","intro_on_current_branch":false},"20220905120848":{"version":20220905120848,"path":"db/post_migrate/20220905120848_backfill_epic_cache_counts.rb","name":"BackfillEpicCacheCounts","type":"post_deploy","intro_on_current_branch":false},"20220720171801":{"version":20220720171801,"path":"db/post_migrate/20220720171801_add_foreign_key_on_vulnerability_reads_namespace_id.rb","name":"AddForeignKeyOnVulnerabilityReadsNamespaceId","type":"post_deploy","intro_on_current_branch":false},"20220524081955":{"version":20220524081955,"path":"db/post_migrate/20220524081955_remove_notes_null_discussion_id_temp_index.rb","name":"RemoveNotesNullDiscussionIdTempIndex","type":"post_deploy","intro_on_current_branch":false},"20210722155635":{"version":20210722155635,"path":"db/post_migrate/20210722155635_finalize_convert_geo_job_artifact_deleted_events_bigint.rb","name":"FinalizeConvertGeoJobArtifactDeletedEventsBigint","type":"post_deploy","intro_on_current_branch":false},"20220826165048":{"version":20220826165048,"path":"db/post_migrate/20220826165048_drop_temporary_job_trace_index.rb","name":"DropTemporaryJobTraceIndex","type":"post_deploy","intro_on_current_branch":false},"20220213104531":{"version":20220213104531,"path":"db/post_migrate/20220213104531_create_indexes_on_integration_type_new.rb","name":"CreateIndexesOnIntegrationTypeNew","type":"post_deploy","intro_on_current_branch":false},"20220222191845":{"version":20220222191845,"path":"db/post_migrate/20220222191845_remove_not_null_constraint_for_security_scan_succeeded.rb","name":"RemoveNotNullConstraintForSecurityScanSucceeded","type":"post_deploy","intro_on_current_branch":false},"20211012155931":{"version":20211012155931,"path":"db/post_migrate/20211012155931_remove_schedule_and_status_from_pending_alert_escalations.rb","name":"RemoveScheduleAndStatusFromPendingAlertEscalations","type":"post_deploy","intro_on_current_branch":false},"20210303064142":{"version":20210303064142,"path":"db/post_migrate/20210303064142_cleanup_gitlab_subscriptions_with_null_namespace_id.rb","name":"CleanupGitlabSubscriptionsWithNullNamespaceId","type":"post_deploy","intro_on_current_branch":false},"20210406144743":{"version":20210406144743,"path":"db/post_migrate/20210406144743_backfill_total_tuple_count_for_batched_migrations.rb","name":"BackfillTotalTupleCountForBatchedMigrations","type":"post_deploy","intro_on_current_branch":false},"20211005083015":{"version":20211005083015,"path":"db/post_migrate/20211005083015_recreate_index_security_ci_builds_on_name_and_id_parser_features.rb","name":"RecreateIndexSecurityCiBuildsOnNameAndIdParserFeatures","type":"post_deploy","intro_on_current_branch":false},"20220520040416":{"version":20220520040416,"path":"db/post_migrate/20220520040416_schedule_set_legacy_open_source_license_available_for_non_public_projects.rb","name":"ScheduleSetLegacyOpenSourceLicenseAvailableForNonPublicProjects","type":"post_deploy","intro_on_current_branch":false},"20220915103831":{"version":20220915103831,"path":"db/post_migrate/20220915103831_add_unique_build_id_partition_id_index_to_ci_build_metadata.rb","name":"AddUniqueBuildIdPartitionIdIndexToCiBuildMetadata","type":"post_deploy","intro_on_current_branch":false},"20211123161906":{"version":20211123161906,"path":"db/post_migrate/20211123161906_cleanup_after_drop_invalid_security_findings.rb","name":"CleanupAfterDropInvalidSecurityFindings","type":"post_deploy","intro_on_current_branch":false},"20220204194347":{"version":20220204194347,"path":"db/post_migrate/20220204194347_encrypt_integration_properties.rb","name":"EncryptIntegrationProperties","type":"post_deploy","intro_on_current_branch":false},"20220420214703":{"version":20220420214703,"path":"db/post_migrate/20220420214703_schedule_backfill_draft_status_on_merge_requests_corrected_regex.rb","name":"ScheduleBackfillDraftStatusOnMergeRequestsCorrectedRegex","type":"post_deploy","intro_on_current_branch":false},"20210525075724":{"version":20210525075724,"path":"db/post_migrate/20210525075724_clean_up_pending_builds_table.rb","name":"CleanUpPendingBuildsTable","type":"post_deploy","intro_on_current_branch":false},"20210531054108":{"version":20210531054108,"path":"db/post_migrate/20210531054108_finalize_rename_instance_statistics_measurements.rb","name":"FinalizeRenameInstanceStatisticsMeasurements","type":"post_deploy","intro_on_current_branch":false},"20210302150310":{"version":20210302150310,"path":"db/post_migrate/20210302150310_schedule_migrate_pages_to_zip_storage.rb","name":"ScheduleMigratePagesToZipStorage","type":"post_deploy","intro_on_current_branch":false},"20220126202654":{"version":20220126202654,"path":"db/post_migrate/20220126202654_remove_projects_ci_sources_projects_source_project_id_fk.rb","name":"RemoveProjectsCiSourcesProjectsSourceProjectIdFk","type":"post_deploy","intro_on_current_branch":false},"20220921111823":{"version":20220921111823,"path":"db/post_migrate/20220921111823_remove_and_add_ci_pipeline_variables_raw_with_new_default.rb","name":"RemoveAndAddCiPipelineVariablesRawWithNewDefault","type":"post_deploy","intro_on_current_branch":false},"20210513155447":{"version":20210513155447,"path":"db/post_migrate/20210513155447_add_temporary_package_index_for_nuget_data_migration.rb","name":"AddTemporaryPackageIndexForNugetDataMigration","type":"post_deploy","intro_on_current_branch":false},"20210819183128":{"version":20210819183128,"path":"db/post_migrate/20210819183128_reset_severity_levels_to_new_default.rb","name":"ResetSeverityLevelsToNewDefault","type":"post_deploy","intro_on_current_branch":false},"20210413132500":{"version":20210413132500,"path":"db/post_migrate/20210413132500_reschedule_artifact_expiry_backfill_again.rb","name":"RescheduleArtifactExpiryBackfillAgain","type":"post_deploy","intro_on_current_branch":false},"20210722010101":{"version":20210722010101,"path":"db/post_migrate/20210722010101_reschedule_delete_orphaned_deployments.rb","name":"RescheduleDeleteOrphanedDeployments","type":"post_deploy","intro_on_current_branch":false},"20220318111040":{"version":20220318111040,"path":"db/post_migrate/20220318111040_add_indexes_for_primary_email_second_cleanup_migration.rb","name":"AddIndexesForPrimaryEmailSecondCleanupMigration","type":"post_deploy","intro_on_current_branch":false},"20220630091409":{"version":20220630091409,"path":"db/post_migrate/20220630091409_add_index_on_events_for_contribution_analytics_optimization.rb","name":"AddIndexOnEventsForContributionAnalyticsOptimization","type":"post_deploy","intro_on_current_branch":false},"20220323023800":{"version":20220323023800,"path":"db/post_migrate/20220323023800_backfill_namespace_id_for_project_routes.rb","name":"BackfillNamespaceIdForProjectRoutes","type":"post_deploy","intro_on_current_branch":false},"20220531035113":{"version":20220531035113,"path":"db/post_migrate/20220531035113_populate_operation_visibility_permissions.rb","name":"PopulateOperationVisibilityPermissions","type":"post_deploy","intro_on_current_branch":false},"20210403022952":{"version":20210403022952,"path":"db/post_migrate/20210403022952_remove_notes_delete_cascade_timelogs.rb","name":"RemoveNotesDeleteCascadeTimelogs","type":"post_deploy","intro_on_current_branch":false},"20211208171402":{"version":20211208171402,"path":"db/post_migrate/20211208171402_reschedule_recalculate_vulnerability_finding_signatures_for_findings.rb","name":"RescheduleRecalculateVulnerabilityFindingSignaturesForFindings","type":"post_deploy","intro_on_current_branch":false},"20220621040800":{"version":20220621040800,"path":"db/post_migrate/20220621040800_backfill_imported_issue_search_data.rb","name":"BackfillImportedIssueSearchData","type":"post_deploy","intro_on_current_branch":false},"20210823113259":{"version":20210823113259,"path":"db/post_migrate/20210823113259_steal_merge_request_diff_commit_users_migration.rb","name":"StealMergeRequestDiffCommitUsersMigration","type":"post_deploy","intro_on_current_branch":false},"20220126201752":{"version":20220126201752,"path":"db/post_migrate/20220126201752_remove_projects_ci_job_token_project_scope_links_target_project_id_fk.rb","name":"RemoveProjectsCiJobTokenProjectScopeLinksTargetProjectIdFk","type":"post_deploy","intro_on_current_branch":false},"20220511212620":{"version":20220511212620,"path":"db/post_migrate/20220511212620_add_index_on_expirable_unknown_artifacts_for_removal.rb","name":"AddIndexOnExpirableUnknownArtifactsForRemoval","type":"post_deploy","intro_on_current_branch":false},"20220324180717":{"version":20220324180717,"path":"db/post_migrate/20220324180717_remove_project_pages_metadata_artifacts_archive_id_column.rb","name":"RemoveProjectPagesMetadataArtifactsArchiveIdColumn","type":"post_deploy","intro_on_current_branch":false},"20210817024335":{"version":20210817024335,"path":"db/post_migrate/20210817024335_prepare_indexes_for_events_bigint_conversion.rb","name":"PrepareIndexesForEventsBigintConversion","type":"post_deploy","intro_on_current_branch":false},"20220714122311":{"version":20220714122311,"path":"db/post_migrate/20220714122311_add_async_index_on_security_findings_id_and_partition_number.rb","name":"AddAsyncIndexOnSecurityFindingsIdAndPartitionNumber","type":"post_deploy","intro_on_current_branch":false},"20210610113229":{"version":20210610113229,"path":"db/post_migrate/20210610113229_add_index_to_protected_pending_builds.rb","name":"AddIndexToProtectedPendingBuilds","type":"post_deploy","intro_on_current_branch":false},"20220602070502":{"version":20220602070502,"path":"db/post_migrate/20220602070502_queue_backfill_project_feature_package_registry_access_level.rb","name":"QueueBackfillProjectFeaturePackageRegistryAccessLevel","type":"post_deploy","intro_on_current_branch":false},"20210920232025":{"version":20210920232025,"path":"db/post_migrate/20210920232025_remove_ci_builds_foreign_key_from_terraform_state_versions.rb","name":"RemoveCiBuildsForeignKeyFromTerraformStateVersions","type":"post_deploy","intro_on_current_branch":false},"20220715160023":{"version":20220715160023,"path":"db/post_migrate/20220715160023_drop_post_migration_test_table.rb","name":"DropPostMigrationTestTable","type":"post_deploy","intro_on_current_branch":false},"20220124152824":{"version":20220124152824,"path":"db/post_migrate/20220124152824_remove_projects_ci_subscriptions_projects_downstream_project_id_fk.rb","name":"RemoveProjectsCiSubscriptionsProjectsDownstreamProjectIdFk","type":"post_deploy","intro_on_current_branch":false},"20210311045138":{"version":20210311045138,"path":"db/post_migrate/20210311045138_set_traversal_ids_for_gitlab_org_group_staging.rb","name":"SetTraversalIdsForGitlabOrgGroupStaging","type":"post_deploy","intro_on_current_branch":false},"20220404194649":{"version":20220404194649,"path":"db/post_migrate/20220404194649_replace_work_item_type_backfill_next_batch_strategy.rb","name":"ReplaceWorkItemTypeBackfillNextBatchStrategy","type":"post_deploy","intro_on_current_branch":false},"20210825150212":{"version":20210825150212,"path":"db/post_migrate/20210825150212_cleanup_remaining_orphan_invites.rb","name":"CleanupRemainingOrphanInvites","type":"post_deploy","intro_on_current_branch":false},"20211118194239":{"version":20211118194239,"path":"db/post_migrate/20211118194239_drop_invalid_remediations.rb","name":"DropInvalidRemediations","type":"post_deploy","intro_on_current_branch":false},"20211027064021":{"version":20211027064021,"path":"db/post_migrate/20211027064021_track_deletions_in_ci_runners.rb","name":"TrackDeletionsInCiRunners","type":"post_deploy","intro_on_current_branch":false},"20210826110839":{"version":20210826110839,"path":"db/post_migrate/20210826110839_prepare_indexes_for_ci_job_artifacts_expire_at_unlocked.rb","name":"PrepareIndexesForCiJobArtifactsExpireAtUnlocked","type":"post_deploy","intro_on_current_branch":false},"20210604232017":{"version":20210604232017,"path":"db/post_migrate/20210604232017_drop_test_table.rb","name":"DropTestTable","type":"post_deploy","intro_on_current_branch":true},"20990604233157":{"version":20990604233157,"path":"db/post_migrate/20990604233157_migration_throws_exception.rb","name":"MigrationThrowsException","type":"post_deploy","intro_on_current_branch":true},"20211013014228":{"version":20211013014228,"path":"db/migrate/20211013014228_add_content_validation_endpoint_to_application_settings.rb","name":"AddContentValidationEndpointToApplicationSettings","type":"regular","intro_on_current_branch":false},"20210313045617":{"version":20210313045617,"path":"db/migrate/20210313045617_add_verification_state_and_started_at_to_snippet_repositories.rb","name":"AddVerificationStateAndStartedAtToSnippetRepositories","type":"regular","intro_on_current_branch":false},"20211005093558":{"version":20211005093558,"path":"db/migrate/20211005093558_add_range_partitioned_loose_fk_table.rb","name":"AddRangePartitionedLooseFkTable","type":"regular","intro_on_current_branch":false},"20210713223941":{"version":20210713223941,"path":"db/migrate/20210713223941_remove_null_constraint_from_security_findings.rb","name":"RemoveNullConstraintFromSecurityFindings","type":"regular","intro_on_current_branch":false},"20220629220129":{"version":20220629220129,"path":"db/migrate/20220629220129_increase_webauthn_xid_length.rb","name":"IncreaseWebauthnXidLength","type":"regular","intro_on_current_branch":false},"20210826145509":{"version":20210826145509,"path":"db/migrate/20210826145509_add_function_for_inserting_deleted_records.rb","name":"AddFunctionForInsertingDeletedRecords","type":"regular","intro_on_current_branch":false},"20220701173859":{"version":20220701173859,"path":"db/migrate/20220701173859_remove_not_null_constraints_from_requirements.rb","name":"RemoveNotNullConstraintsFromRequirements","type":"regular","intro_on_current_branch":false},"20211111112713":{"version":20211111112713,"path":"db/migrate/20211111112713_add_fk_compliance_violations_violating_user.rb","name":"AddFkComplianceViolationsViolatingUser","type":"regular","intro_on_current_branch":false},"20210430124212":{"version":20210430124212,"path":"db/migrate/20210430124212_add_display_namespace_id_to_segments.rb","name":"AddDisplayNamespaceIdToSegments","type":"regular","intro_on_current_branch":false},"20210602122233":{"version":20210602122233,"path":"db/migrate/20210602122233_add_runners_description_index.rb","name":"AddRunnersDescriptionIndex","type":"regular","intro_on_current_branch":false},"20220413054910":{"version":20220413054910,"path":"db/migrate/20220413054910_backfill_delayed_group_deletion.rb","name":"BackfillDelayedGroupDeletion","type":"regular","intro_on_current_branch":false},"20210908185754":{"version":20210908185754,"path":"db/migrate/20210908185754_add_status_to_dependency_proxy_blobs.rb","name":"AddStatusToDependencyProxyBlobs","type":"regular","intro_on_current_branch":false},"20210324112439":{"version":20210324112439,"path":"db/migrate/20210324112439_add_index_mirror_data_on_retry_next_execution_where_status.rb","name":"AddIndexMirrorDataOnRetryNextExecutionWhereStatus","type":"regular","intro_on_current_branch":false},"20211025103758":{"version":20211025103758,"path":"db/migrate/20211025103758_add_state_id_to_vsa_merge_request_stage_events.rb","name":"AddStateIdToVsaMergeRequestStageEvents","type":"regular","intro_on_current_branch":false},"20210510083845":{"version":20210510083845,"path":"db/migrate/20210510083845_add_sha_to_status_check_response.rb","name":"AddShaToStatusCheckResponse","type":"regular","intro_on_current_branch":false},"20220316202200":{"version":20220316202200,"path":"db/migrate/20220316202200_add_migration_plan_to_container_repositories.rb","name":"AddMigrationPlanToContainerRepositories","type":"regular","intro_on_current_branch":false},"20210526135911":{"version":20210526135911,"path":"db/migrate/20210526135911_create_ci_minutes_additional_packs.rb","name":"CreateCiMinutesAdditionalPacks","type":"regular","intro_on_current_branch":false},"20220111095007":{"version":20220111095007,"path":"db/migrate/20220111095007_add_text_limit_to_ci_runners_maintainer_note.rb","name":"AddTextLimitToCiRunnersMaintainerNote","type":"regular","intro_on_current_branch":false},"20220530104431":{"version":20220530104431,"path":"db/migrate/20220530104431_add_timestamps_to_compliance_frameworks.rb","name":"AddTimestampsToComplianceFrameworks","type":"regular","intro_on_current_branch":false},"20210414131807":{"version":20210414131807,"path":"db/migrate/20210414131807_add_bulk_import_exports_table_indexes.rb","name":"AddBulkImportExportsTableIndexes","type":"regular","intro_on_current_branch":false},"20210831135249":{"version":20210831135249,"path":"db/migrate/20210831135249_add_installable_helm_pkgs_idx_to_packages.rb","name":"AddInstallableHelmPkgsIdxToPackages","type":"regular","intro_on_current_branch":false},"20220722123318":{"version":20220722123318,"path":"db/migrate/20220722123318_update_delayed_deletion_period.rb","name":"UpdateDelayedDeletionPeriod","type":"regular","intro_on_current_branch":false},"20220419223906":{"version":20220419223906,"path":"db/migrate/20220419223906_add_arkose_namespace_to_application_settings.rb","name":"AddArkoseNamespaceToApplicationSettings","type":"regular","intro_on_current_branch":false},"20210602155110":{"version":20210602155110,"path":"db/migrate/20210602155110_add_merge_request_diff_commit_user_columns.rb","name":"AddMergeRequestDiffCommitUserColumns","type":"regular","intro_on_current_branch":false},"20210820171834":{"version":20210820171834,"path":"db/migrate/20210820171834_add_foreign_keys_for_pending_issue_escalations.rb","name":"AddForeignKeysForPendingIssueEscalations","type":"regular","intro_on_current_branch":false},"20220513093615":{"version":20220513093615,"path":"db/migrate/20220513093615_add_ding_talk_tracker_data.rb","name":"AddDingTalkTrackerData","type":"regular","intro_on_current_branch":false},"20220314184009":{"version":20220314184009,"path":"db/migrate/20220314184009_create_protected_environment_approval_rules.rb","name":"CreateProtectedEnvironmentApprovalRules","type":"regular","intro_on_current_branch":false},"20220405061122":{"version":20220405061122,"path":"db/migrate/20220405061122_add_license_scanning_action_to_onboarding_progresses.rb","name":"AddLicenseScanningActionToOnboardingProgresses","type":"regular","intro_on_current_branch":false},"20220805183952":{"version":20220805183952,"path":"db/migrate/20220805183952_add_unique_index_to_sbom_component_versions_on_component_id_and_version.rb","name":"AddUniqueIndexToSbomComponentVersionsOnComponentIdAndVersion","type":"regular","intro_on_current_branch":false},"20210707171554":{"version":20210707171554,"path":"db/migrate/20210707171554_create_vulnerability_flags.rb","name":"CreateVulnerabilityFlags","type":"regular","intro_on_current_branch":false},"20220413235818":{"version":20220413235818,"path":"db/migrate/20220413235818_add_max_seats_used_changed_at_to_gitlab_subscriptions.rb","name":"AddMaxSeatsUsedChangedAtToGitlabSubscriptions","type":"regular","intro_on_current_branch":false},"20220902065316":{"version":20220902065316,"path":"db/migrate/20220902065316_create_default_partition_record.rb","name":"CreateDefaultPartitionRecord","type":"regular","intro_on_current_branch":false},"20220128093756":{"version":20220128093756,"path":"db/migrate/20220128093756_add_ecdsa_sk_and_ed25519_sk_key_restrictions_to_application_settings.rb","name":"AddEcdsaSkAndEd25519SkKeyRestrictionsToApplicationSettings","type":"regular","intro_on_current_branch":false},"20210908185736":{"version":20210908185736,"path":"db/migrate/20210908185736_add_status_to_dependency_proxy_manifests.rb","name":"AddStatusToDependencyProxyManifests","type":"regular","intro_on_current_branch":false},"20210310111009":{"version":20210310111009,"path":"db/migrate/20210310111009_add_settings_to_group_merge_request_approval_settings.rb","name":"AddSettingsToGroupMergeRequestApprovalSettings","type":"regular","intro_on_current_branch":false},"20210305031822":{"version":20210305031822,"path":"db/migrate/20210305031822_create_dast_site_profile_variables.rb","name":"CreateDastSiteProfileVariables","type":"regular","intro_on_current_branch":false},"20220118141950":{"version":20220118141950,"path":"db/migrate/20220118141950_add_text_limit_to_container_registry_import_target_plan.rb","name":"AddTextLimitToContainerRegistryImportTargetPlan","type":"regular","intro_on_current_branch":false},"20210303165301":{"version":20210303165301,"path":"db/migrate/20210303165301_add_not_null_constraint_to_cluster_token_name.rb","name":"AddNotNullConstraintToClusterTokenName","type":"regular","intro_on_current_branch":false},"20211011140932":{"version":20211011140932,"path":"db/migrate/20211011140932_create_namespaces_sync_events.rb","name":"CreateNamespacesSyncEvents","type":"regular","intro_on_current_branch":false},"20220106141756":{"version":20220106141756,"path":"db/migrate/20220106141756_remove_lock_version_indexes.rb","name":"RemoveLockVersionIndexes","type":"regular","intro_on_current_branch":false},"20220601091805":{"version":20220601091805,"path":"db/migrate/20220601091805_add_text_limit_to_ci_runners_semver.rb","name":"AddTextLimitToCiRunnersSemver","type":"regular","intro_on_current_branch":false},"20210608103230":{"version":20210608103230,"path":"db/migrate/20210608103230_add_issue_id_to_test_report.rb","name":"AddIssueIdToTestReport","type":"regular","intro_on_current_branch":false},"20220914005141":{"version":20220914005141,"path":"db/migrate/20220914005141_change_namespace_id_not_null_in_members.rb","name":"ChangeNamespaceIdNotNullInMembers","type":"regular","intro_on_current_branch":false},"20220707181910":{"version":20220707181910,"path":"db/migrate/20220707181910_create_member_roles.rb","name":"CreateMemberRoles","type":"regular","intro_on_current_branch":false},"20210520133032":{"version":20210520133032,"path":"db/migrate/20210520133032_initialize_conversion_of_taggings_to_bigint.rb","name":"InitializeConversionOfTaggingsToBigint","type":"regular","intro_on_current_branch":false},"20220525123914":{"version":20220525123914,"path":"db/migrate/20220525123914_add_raw_to_ci_instance_variables.rb","name":"AddRawToCiInstanceVariables","type":"regular","intro_on_current_branch":false},"20220913082728":{"version":20220913082728,"path":"db/migrate/20220913082728_drop_index_cadence_create_iterations_automation.rb","name":"DropIndexCadenceCreateIterationsAutomation","type":"regular","intro_on_current_branch":false},"20210525085158":{"version":20210525085158,"path":"db/migrate/20210525085158_initialize_conversion_of_deployments_to_bigint.rb","name":"InitializeConversionOfDeploymentsToBigint","type":"regular","intro_on_current_branch":false},"20220811092246":{"version":20220811092246,"path":"db/migrate/20220811092246_create_ml_candidate_metrics.rb","name":"CreateMlCandidateMetrics","type":"regular","intro_on_current_branch":false},"20211012015903":{"version":20211012015903,"path":"db/migrate/20211012015903_next_traversal_ids_sibling_function.rb","name":"NextTraversalIdsSiblingFunction","type":"regular","intro_on_current_branch":false},"20211123181236":{"version":20211123181236,"path":"db/migrate/20211123181236_add_user_foreign_key_to_deployment_approvals.rb","name":"AddUserForeignKeyToDeploymentApprovals","type":"regular","intro_on_current_branch":false},"20220203074916":{"version":20220203074916,"path":"db/migrate/20220203074916_add_topics_lower_name_index.rb","name":"AddTopicsLowerNameIndex","type":"regular","intro_on_current_branch":false},"20220516123101":{"version":20220516123101,"path":"db/migrate/20220516123101_add_text_limit_to_globally_allowed_ips_on_application_settings.rb","name":"AddTextLimitToGloballyAllowedIpsOnApplicationSettings","type":"regular","intro_on_current_branch":false},"20220507204024":{"version":20220507204024,"path":"db/migrate/20220507204024_add_separated_caches_option_to_project_ci_settings.rb","name":"AddSeparatedCachesOptionToProjectCiSettings","type":"regular","intro_on_current_branch":false},"20220406113217":{"version":20220406113217,"path":"db/migrate/20220406113217_add_inactive_project_deletion_to_application_settings.rb","name":"AddInactiveProjectDeletionToApplicationSettings","type":"regular","intro_on_current_branch":false},"20210317105904":{"version":20210317105904,"path":"db/migrate/20210317105904_add_user_foreign_key_to_in_product_marketing_emails.rb","name":"AddUserForeignKeyToInProductMarketingEmails","type":"regular","intro_on_current_branch":false},"20210705130919":{"version":20210705130919,"path":"db/migrate/20210705130919_create_container_repos_on_exp_cleanup_status_project_id_start_date_index.rb","name":"CreateContainerReposOnExpCleanupStatusProjectIdStartDateIndex","type":"regular","intro_on_current_branch":false},"20210923042325":{"version":20210923042325,"path":"db/migrate/20210923042325_index_meta_data_on_user_credit_card_validations.rb","name":"IndexMetaDataOnUserCreditCardValidations","type":"regular","intro_on_current_branch":false},"20210331000934":{"version":20210331000934,"path":"db/migrate/20210331000934_add_config_to_ci_runners.rb","name":"AddConfigToCiRunners","type":"regular","intro_on_current_branch":false},"20220118015633":{"version":20220118015633,"path":"db/migrate/20220118015633_add_url_text_to_issuable_metric_images.rb","name":"AddUrlTextToIssuableMetricImages","type":"regular","intro_on_current_branch":false},"20210616154808":{"version":20210616154808,"path":"db/migrate/20210616154808_remove_ci_build_protected_index.rb","name":"RemoveCiBuildProtectedIndex","type":"regular","intro_on_current_branch":false},"20220610140605":{"version":20220610140605,"path":"db/migrate/20220610140605_change_public_projects_cost_factor.rb","name":"ChangePublicProjectsCostFactor","type":"regular","intro_on_current_branch":false},"20210921063924":{"version":20210921063924,"path":"db/migrate/20210921063924_index_labels_using_varchar_pattern_ops.rb","name":"IndexLabelsUsingVarcharPatternOps","type":"regular","intro_on_current_branch":false},"20210708131048":{"version":20210708131048,"path":"db/migrate/20210708131048_add_error_tracking_counter_cache.rb","name":"AddErrorTrackingCounterCache","type":"regular","intro_on_current_branch":false},"20220720210446":{"version":20220720210446,"path":"db/migrate/20220720210446_add_start_date_to_issues_table.rb","name":"AddStartDateToIssuesTable","type":"regular","intro_on_current_branch":false},"20220413164146":{"version":20220413164146,"path":"db/migrate/20220413164146_remove_max_seats_used_indices.rb","name":"RemoveMaxSeatsUsedIndices","type":"regular","intro_on_current_branch":false},"20210910014741":{"version":20210910014741,"path":"db/migrate/20210910014741_add_dependency_proxy_ttl_group_policy_worker_capacity_to_application_settings.rb","name":"AddDependencyProxyTtlGroupPolicyWorkerCapacityToApplicationSettings","type":"regular","intro_on_current_branch":false},"20210601132134":{"version":20210601132134,"path":"db/migrate/20210601132134_remove_partial_index_for_hashed_storage_migration.rb","name":"RemovePartialIndexForHashedStorageMigration","type":"regular","intro_on_current_branch":false},"20220712131513":{"version":20220712131513,"path":"db/migrate/20220712131513_rename_issue_tracker_data_service_id_to_integration_id.rb","name":"RenameIssueTrackerDataServiceIdToIntegrationId","type":"regular","intro_on_current_branch":false},"20210601080039":{"version":20210601080039,"path":"db/migrate/20210601080039_group_protected_environments_add_index_and_constraint.rb","name":"GroupProtectedEnvironmentsAddIndexAndConstraint","type":"regular","intro_on_current_branch":false},"20220404170446":{"version":20220404170446,"path":"db/migrate/20220404170446_add_index_for_non_requested_non_invited_awaiting_members.rb","name":"AddIndexForNonRequestedNonInvitedAwaitingMembers","type":"regular","intro_on_current_branch":false},"20220105153149":{"version":20220105153149,"path":"db/migrate/20220105153149_add_foreign_key_to_updated_state_by_user_id_to_merge_request_reviewers.rb","name":"AddForeignKeyToUpdatedStateByUserIdToMergeRequestReviewers","type":"regular","intro_on_current_branch":false},"20220803154543":{"version":20220803154543,"path":"db/migrate/20220803154543_add_project_id_fkey_for_user_project_callout.rb","name":"AddProjectIdFkeyForUserProjectCallout","type":"regular","intro_on_current_branch":false},"20220401151123":{"version":20220401151123,"path":"db/migrate/20220401151123_add_last_repository_updated_at_to_project_repository_state.rb","name":"AddLastRepositoryUpdatedAtToProjectRepositoryState","type":"regular","intro_on_current_branch":false},"20210319071214":{"version":20210319071214,"path":"db/migrate/20210319071214_add_helm_max_file_size_to_plan_limits.rb","name":"AddHelmMaxFileSizeToPlanLimits","type":"regular","intro_on_current_branch":false},"20220811092243":{"version":20220811092243,"path":"db/migrate/20220811092243_create_ml_experiments.rb","name":"CreateMlExperiments","type":"regular","intro_on_current_branch":false},"20211126113029":{"version":20211126113029,"path":"db/migrate/20211126113029_add_text_limit_for_static_objects_external_storage_auth_token.rb","name":"AddTextLimitForStaticObjectsExternalStorageAuthToken","type":"regular","intro_on_current_branch":false},"20220504042847":{"version":20220504042847,"path":"db/migrate/20220504042847_add_slack_signing_key_to_application_settings.rb","name":"AddSlackSigningKeyToApplicationSettings","type":"regular","intro_on_current_branch":false},"20211202135508":{"version":20211202135508,"path":"db/migrate/20211202135508_add_index_on_packages_build_infos_package_id_pipeline_id.rb","name":"AddIndexOnPackagesBuildInfosPackageIdPipelineId","type":"regular","intro_on_current_branch":false},"20210826170902":{"version":20210826170902,"path":"db/migrate/20210826170902_add_throttle_unauthenticated_api_columns.rb","name":"AddThrottleUnauthenticatedApiColumns","type":"regular","intro_on_current_branch":false},"20220802154757":{"version":20220802154757,"path":"db/migrate/20220802154757_add_deactivate_dormant_user_time_setting.rb","name":"AddDeactivateDormantUserTimeSetting","type":"regular","intro_on_current_branch":false},"20210818193008":{"version":20210818193008,"path":"db/migrate/20210818193008_add_file_template_project_to_service_desk_settings.rb","name":"AddFileTemplateProjectToServiceDeskSettings","type":"regular","intro_on_current_branch":false},"20211027203950":{"version":20211027203950,"path":"db/migrate/20211027203950_add_updated_index_for_dormant_users.rb","name":"AddUpdatedIndexForDormantUsers","type":"regular","intro_on_current_branch":false},"20210729081351":{"version":20210729081351,"path":"db/migrate/20210729081351_create_topics.rb","name":"CreateTopics","type":"regular","intro_on_current_branch":false},"20220909113809":{"version":20220909113809,"path":"db/migrate/20220909113809_add_environments_project_name_lower_pattern_ops_state_index.rb","name":"AddEnvironmentsProjectNameLowerPatternOpsStateIndex","type":"regular","intro_on_current_branch":false},"20210720083432":{"version":20210720083432,"path":"db/migrate/20210720083432_change_application_setting_terms_not_null.rb","name":"ChangeApplicationSettingTermsNotNull","type":"regular","intro_on_current_branch":false},"20210609013512":{"version":20210609013512,"path":"db/migrate/20210609013512_add_unique_index_for_batched_background_migrations.rb","name":"AddUniqueIndexForBatchedBackgroundMigrations","type":"regular","intro_on_current_branch":false},"20220822103638":{"version":20220822103638,"path":"db/migrate/20220822103638_add_index_and_foreign_key_to_broadcast_message.rb","name":"AddIndexAndForeignKeyToBroadcastMessage","type":"regular","intro_on_current_branch":false},"20220217113058":{"version":20220217113058,"path":"db/migrate/20220217113058_add_status_to_status_check_responses.rb","name":"AddStatusToStatusCheckResponses","type":"regular","intro_on_current_branch":false},"20211111112639":{"version":20211111112639,"path":"db/migrate/20211111112639_add_fk_compliance_violations_merge_request.rb","name":"AddFkComplianceViolationsMergeRequest","type":"regular","intro_on_current_branch":false},"20220523030805":{"version":20220523030805,"path":"db/migrate/20220523030805_add_web_hook_calls_to_plan_limits_paid_tiers.rb","name":"AddWebHookCallsToPlanLimitsPaidTiers","type":"regular","intro_on_current_branch":false},"20211210025754":{"version":20211210025754,"path":"db/migrate/20211210025754_alter_constraint_of_phone.rb","name":"AlterConstraintOfPhone","type":"regular","intro_on_current_branch":false},"20210421022010":{"version":20210421022010,"path":"db/migrate/20210421022010_add_index_for_dormant_users.rb","name":"AddIndexForDormantUsers","type":"regular","intro_on_current_branch":false},"20210630144339":{"version":20210630144339,"path":"db/migrate/20210630144339_add_invite_email_success_to_members.rb","name":"AddInviteEmailSuccessToMembers","type":"regular","intro_on_current_branch":false},"20211123135255":{"version":20211123135255,"path":"db/migrate/20211123135255_create_batched_background_migration_job_transition_logs.rb","name":"CreateBatchedBackgroundMigrationJobTransitionLogs","type":"regular","intro_on_current_branch":false},"20220518183548":{"version":20220518183548,"path":"db/migrate/20220518183548_add_projects_relation_to_ssh_signatures.rb","name":"AddProjectsRelationToSshSignatures","type":"regular","intro_on_current_branch":false},"20210601133459":{"version":20210601133459,"path":"db/migrate/20210601133459_replace_runners_contacted_at_index.rb","name":"ReplaceRunnersContactedAtIndex","type":"regular","intro_on_current_branch":false},"20210412132824":{"version":20210412132824,"path":"db/migrate/20210412132824_add_text_limit_to_jira_connect_installations_instance_url.rb","name":"AddTextLimitToJiraConnectInstallationsInstanceUrl","type":"regular","intro_on_current_branch":false},"20220113125401":{"version":20220113125401,"path":"db/migrate/20220113125401_create_security_trainings.rb","name":"CreateSecurityTrainings","type":"regular","intro_on_current_branch":false},"20210708011425":{"version":20210708011425,"path":"db/migrate/20210708011425_rename_ci_builds_metadata_foreign_key.rb","name":"RenameCiBuildsMetadataForeignKey","type":"regular","intro_on_current_branch":false},"20220524021855":{"version":20220524021855,"path":"db/migrate/20220524021855_add_deleted_at_to_terraform_states.rb","name":"AddDeletedAtToTerraformStates","type":"regular","intro_on_current_branch":false},"20210721125620":{"version":20210721125620,"path":"db/migrate/20210721125620_add_text_limit_to_packages_debian_project_distributions_signed_files.rb","name":"AddTextLimitToPackagesDebianProjectDistributionsSignedFiles","type":"regular","intro_on_current_branch":false},"20210608110752":{"version":20210608110752,"path":"db/migrate/20210608110752_change_column_null_test_report_requirement.rb","name":"ChangeColumnNullTestReportRequirement","type":"regular","intro_on_current_branch":false},"20210414130017":{"version":20210414130017,"path":"db/migrate/20210414130017_add_foreign_key_to_bulk_import_exports_on_project.rb","name":"AddForeignKeyToBulkImportExportsOnProject","type":"regular","intro_on_current_branch":false},"20211129151832":{"version":20211129151832,"path":"db/migrate/20211129151832_add_index_on_vulnerability_occurrences_migrated_to_new_structure_column.rb","name":"AddIndexOnVulnerabilityOccurrencesMigratedToNewStructureColumn","type":"regular","intro_on_current_branch":false},"20220913082824":{"version":20220913082824,"path":"db/migrate/20220913082824_finalize_invalid_group_member_cleanup.rb","name":"FinalizeInvalidGroupMemberCleanup","type":"regular","intro_on_current_branch":false},"20210415172516":{"version":20210415172516,"path":"db/migrate/20210415172516_create_vulnerability_finding_evidence_requests.rb","name":"CreateVulnerabilityFindingEvidenceRequests","type":"regular","intro_on_current_branch":false},"20211213154259":{"version":20211213154259,"path":"db/migrate/20211213154259_add_status_to_packages_package_files.rb","name":"AddStatusToPackagesPackageFiles","type":"regular","intro_on_current_branch":false},"20210913122457":{"version":20210913122457,"path":"db/migrate/20210913122457_add_namespace_traversal_ids_to_ci_pending_builds.rb","name":"AddNamespaceTraversalIdsToCiPendingBuilds","type":"regular","intro_on_current_branch":false},"20220301091503":{"version":20220301091503,"path":"db/migrate/20220301091503_add_not_null_constraint_to_security_policy_configurations.rb","name":"AddNotNullConstraintToSecurityPolicyConfigurations","type":"regular","intro_on_current_branch":false},"20210621043337":{"version":20210621043337,"path":"db/migrate/20210621043337_rename_services_to_integrations.rb","name":"RenameServicesToIntegrations","type":"regular","intro_on_current_branch":false},"20210413155324":{"version":20210413155324,"path":"db/migrate/20210413155324_add_pause_seconds_to_batched_background_migrations.rb","name":"AddPauseSecondsToBatchedBackgroundMigrations","type":"regular","intro_on_current_branch":false},"20220401045116":{"version":20220401045116,"path":"db/migrate/20220401045116_add_user_id_and_state_index_to_merge_request_reviewers.rb","name":"AddUserIdAndStateIndexToMergeRequestReviewers","type":"regular","intro_on_current_branch":false},"20210929115340":{"version":20210929115340,"path":"db/migrate/20210929115340_add_security_policy_configurations_management_project_id_foreign_key.rb","name":"AddSecurityPolicyConfigurationsManagementProjectIdForeignKey","type":"regular","intro_on_current_branch":false},"20210412142223":{"version":20210412142223,"path":"db/migrate/20210412142223_add_user_index_on_spam_logs.rb","name":"AddUserIndexOnSpamLogs","type":"regular","intro_on_current_branch":false},"20210728110654":{"version":20210728110654,"path":"db/migrate/20210728110654_add_status_to_error_tracking_error.rb","name":"AddStatusToErrorTrackingError","type":"regular","intro_on_current_branch":false},"20220425120604":{"version":20220425120604,"path":"db/migrate/20220425120604_create_packages_cleanup_policies.rb","name":"CreatePackagesCleanupPolicies","type":"regular","intro_on_current_branch":false},"20210929031049":{"version":20210929031049,"path":"db/migrate/20210929031049_add_unique_index_phone_on_user_details.rb","name":"AddUniqueIndexPhoneOnUserDetails","type":"regular","intro_on_current_branch":false},"20220525084153":{"version":20220525084153,"path":"db/migrate/20220525084153_add_sentry_project_id_to_project_error_tracking_settings.rb","name":"AddSentryProjectIdToProjectErrorTrackingSettings","type":"regular","intro_on_current_branch":false},"20210811193033":{"version":20210811193033,"path":"db/migrate/20210811193033_add_unique_index_to_vulnerability_finding_links.rb","name":"AddUniqueIndexToVulnerabilityFindingLinks","type":"regular","intro_on_current_branch":false},"20210312174321":{"version":20210312174321,"path":"db/migrate/20210312174321_add_enforced_git_check_to_saml_provider.rb","name":"AddEnforcedGitCheckToSamlProvider","type":"regular","intro_on_current_branch":false},"20210705142714":{"version":20210705142714,"path":"db/migrate/20210705142714_initialize_conversion_of_ci_builds_metadata_id_to_bigint.rb","name":"InitializeConversionOfCiBuildsMetadataIdToBigint","type":"regular","intro_on_current_branch":false},"20210329191850":{"version":20210329191850,"path":"db/migrate/20210329191850_add_finding_signature_table.rb","name":"AddFindingSignatureTable","type":"regular","intro_on_current_branch":false},"20211006103122":{"version":20211006103122,"path":"db/migrate/20211006103122_change_helm_channel_length.rb","name":"ChangeHelmChannelLength","type":"regular","intro_on_current_branch":false},"20211209230042":{"version":20211209230042,"path":"db/migrate/20211209230042_add_status_to_cluster_agent_tokens.rb","name":"AddStatusToClusterAgentTokens","type":"regular","intro_on_current_branch":false},"20210305013509":{"version":20210305013509,"path":"db/migrate/20210305013509_add_text_limit_to_group_ci_variables_environment_scope.rb","name":"AddTextLimitToGroupCiVariablesEnvironmentScope","type":"regular","intro_on_current_branch":false},"20210430034712":{"version":20210430034712,"path":"db/migrate/20210430034712_add_alert_manager_token_to_clusters_integration_prometheus.rb","name":"AddAlertManagerTokenToClustersIntegrationPrometheus","type":"regular","intro_on_current_branch":false},"20210722151951":{"version":20210722151951,"path":"db/migrate/20210722151951_add_columns_to_security_scans.rb","name":"AddColumnsToSecurityScans","type":"regular","intro_on_current_branch":false},"20220825134827":{"version":20220825134827,"path":"db/migrate/20220825134827_remove_not_null_constraint_for_confidence_columns.rb","name":"RemoveNotNullConstraintForConfidenceColumns","type":"regular","intro_on_current_branch":false},"20210504164429":{"version":20210504164429,"path":"db/migrate/20210504164429_create_partial_indexes_for_pending_and_running_builds.rb","name":"CreatePartialIndexesForPendingAndRunningBuilds","type":"regular","intro_on_current_branch":false},"20220818095225":{"version":20220818095225,"path":"db/migrate/20220818095225_add_max_pages_custom_domains_per_project.rb","name":"AddMaxPagesCustomDomainsPerProject","type":"regular","intro_on_current_branch":false},"20220520030504":{"version":20220520030504,"path":"db/migrate/20220520030504_drop_index_namespaces_on_name.rb","name":"DropIndexNamespacesOnName","type":"regular","intro_on_current_branch":false},"20211008182954":{"version":20211008182954,"path":"db/migrate/20211008182954_add_shared_runners_duration_to_ci_project_monthly_usages.rb","name":"AddSharedRunnersDurationToCiProjectMonthlyUsages","type":"regular","intro_on_current_branch":false},"20211216220939":{"version":20211216220939,"path":"db/migrate/20211216220939_add_group_crm_settings.rb","name":"AddGroupCrmSettings","type":"regular","intro_on_current_branch":false},"20211111112425":{"version":20211111112425,"path":"db/migrate/20211111112425_create_merge_requests_compliance_violations.rb","name":"CreateMergeRequestsComplianceViolations","type":"regular","intro_on_current_branch":false},"20220408135815":{"version":20220408135815,"path":"db/migrate/20220408135815_update_index_on_greated_done_at_on_container_repositories.rb","name":"UpdateIndexOnGreatedDoneAtOnContainerRepositories","type":"regular","intro_on_current_branch":false},"20210427194958":{"version":20210427194958,"path":"db/migrate/20210427194958_add_description_roll_over_to_iterations_cadences.rb","name":"AddDescriptionRollOverToIterationsCadences","type":"regular","intro_on_current_branch":false},"20220517182529":{"version":20220517182529,"path":"db/migrate/20220517182529_create_vulnerability_state_transition.rb","name":"CreateVulnerabilityStateTransition","type":"regular","intro_on_current_branch":false},"20211220174504":{"version":20211220174504,"path":"db/migrate/20211220174504_add_secure_scanning_actions_to_onboarding_progresses.rb","name":"AddSecureScanningActionsToOnboardingProgresses","type":"regular","intro_on_current_branch":false},"20211011141242":{"version":20211011141242,"path":"db/migrate/20211011141242_create_namespaces_sync_trigger.rb","name":"CreateNamespacesSyncTrigger","type":"regular","intro_on_current_branch":false},"20210423164702":{"version":20210423164702,"path":"db/migrate/20210423164702_insert_runner_registration_plan_limits.rb","name":"InsertRunnerRegistrationPlanLimits","type":"regular","intro_on_current_branch":false},"20220408001450":{"version":20220408001450,"path":"db/migrate/20220408001450_add_work_item_type_name_unique_index_null_namespaces.rb","name":"AddWorkItemTypeNameUniqueIndexNullNamespaces","type":"regular","intro_on_current_branch":false},"20210423155059":{"version":20210423155059,"path":"db/migrate/20210423155059_add_runner_registration_to_plan_limits.rb","name":"AddRunnerRegistrationToPlanLimits","type":"regular","intro_on_current_branch":false},"20211007113136":{"version":20211007113136,"path":"db/migrate/20211007113136_add_status_column_to_security_scans_table.rb","name":"AddStatusColumnToSecurityScansTable","type":"regular","intro_on_current_branch":false},"20220914080716":{"version":20220914080716,"path":"db/migrate/20220914080716_add_index_to_candidate_id_and_name_on_ml_candidate_params.rb","name":"AddIndexToCandidateIdAndNameOnMlCandidateParams","type":"regular","intro_on_current_branch":false},"20210317035357":{"version":20210317035357,"path":"db/migrate/20210317035357_create_dast_profiles_pipelines.rb","name":"CreateDastProfilesPipelines","type":"regular","intro_on_current_branch":false},"20210830154358":{"version":20210830154358,"path":"db/migrate/20210830154358_add_yaml_limit_constraints.rb","name":"AddYamlLimitConstraints","type":"regular","intro_on_current_branch":false},"20210303165201":{"version":20210303165201,"path":"db/migrate/20210303165201_add_index_for_succeeded_deployments.rb","name":"AddIndexForSucceededDeployments","type":"regular","intro_on_current_branch":false},"20210929030834":{"version":20210929030834,"path":"db/migrate/20210929030834_add_text_limit_to_user_details_phone.rb","name":"AddTextLimitToUserDetailsPhone","type":"regular","intro_on_current_branch":false},"20220617123135":{"version":20220617123135,"path":"db/migrate/20220617123135_drop_temp_index_on_projects_on_id_and_runners_token.rb","name":"DropTempIndexOnProjectsOnIdAndRunnersToken","type":"regular","intro_on_current_branch":false},"20220907115806":{"version":20220907115806,"path":"db/migrate/20220907115806_add_security_orchestration_policy_configuration_id.rb","name":"AddSecurityOrchestrationPolicyConfigurationId","type":"regular","intro_on_current_branch":false},"20220906093857":{"version":20220906093857,"path":"db/migrate/20220906093857_add_column_branch_filter_strategy_to_web_hooks.rb","name":"AddColumnBranchFilterStrategyToWebHooks","type":"regular","intro_on_current_branch":false},"20210308175227":{"version":20210308175227,"path":"db/migrate/20210308175227_add_lock_delayed_project_removal_to_application_settings.rb","name":"AddLockDelayedProjectRemovalToApplicationSettings","type":"regular","intro_on_current_branch":false},"20220830082928":{"version":20220830082928,"path":"db/migrate/20220830082928_add_text_limit_to_cube_api_base_url.rb","name":"AddTextLimitToCubeApiBaseUrl","type":"regular","intro_on_current_branch":false},"20210818220234":{"version":20210818220234,"path":"db/migrate/20210818220234_add_default_project_approval_rules_vuln_allowed.rb","name":"AddDefaultProjectApprovalRulesVulnAllowed","type":"regular","intro_on_current_branch":false},"20210414133310":{"version":20210414133310,"path":"db/migrate/20210414133310_add_bulk_import_export_uploads_table.rb","name":"AddBulkImportExportUploadsTable","type":"regular","intro_on_current_branch":false},"20210305182740":{"version":20210305182740,"path":"db/migrate/20210305182740_add_projects_fk_to_ci_unit_tests.rb","name":"AddProjectsFkToCiUnitTests","type":"regular","intro_on_current_branch":false},"20220106112085":{"version":20220106112085,"path":"db/migrate/20220106112085_add_update_vulnerability_reads_location_trigger.rb","name":"AddUpdateVulnerabilityReadsLocationTrigger","type":"regular","intro_on_current_branch":false},"20220708132701":{"version":20220708132701,"path":"db/migrate/20220708132701_create_vulnerability_merge_request_links.rb","name":"CreateVulnerabilityMergeRequestLinks","type":"regular","intro_on_current_branch":false},"20210325151758":{"version":20210325151758,"path":"db/migrate/20210325151758_add_verification_failure_limit_to_ci_pipeline_artifact.rb","name":"AddVerificationFailureLimitToCiPipelineArtifact","type":"regular","intro_on_current_branch":false},"20210917224419":{"version":20210917224419,"path":"db/migrate/20210917224419_add_registration_objective_to_user_detail.rb","name":"AddRegistrationObjectiveToUserDetail","type":"regular","intro_on_current_branch":false},"20210316094047":{"version":20210316094047,"path":"db/migrate/20210316094047_add_trial_extension_type_to_gitlab_subscription_histories.rb","name":"AddTrialExtensionTypeToGitlabSubscriptionHistories","type":"regular","intro_on_current_branch":false},"20220504140036":{"version":20220504140036,"path":"db/migrate/20220504140036_add_container_registry_size_to_namespace_root_storage_statistics.rb","name":"AddContainerRegistrySizeToNamespaceRootStorageStatistics","type":"regular","intro_on_current_branch":false},"20211109101010":{"version":20211109101010,"path":"db/migrate/20211109101010_support_partition_query_in_loose_fk_table.rb","name":"SupportPartitionQueryInLooseFkTable","type":"regular","intro_on_current_branch":false},"20220825105631":{"version":20220825105631,"path":"db/migrate/20220825105631_add_cube_api_key_to_application_settings.rb","name":"AddCubeApiKeyToApplicationSettings","type":"regular","intro_on_current_branch":false},"20211012091822":{"version":20211012091822,"path":"db/migrate/20211012091822_add_text_limit_to_bulk_imports_source_version.rb","name":"AddTextLimitToBulkImportsSourceVersion","type":"regular","intro_on_current_branch":false},"20210311120152":{"version":20210311120152,"path":"db/migrate/20210311120152_add_metrics_to_batched_background_migration_jobs.rb","name":"AddMetricsToBatchedBackgroundMigrationJobs","type":"regular","intro_on_current_branch":false},"20211013080715":{"version":20211013080715,"path":"db/migrate/20211013080715_limit_network_on_user_credit_card_validations.rb","name":"LimitNetworkOnUserCreditCardValidations","type":"regular","intro_on_current_branch":false},"20220819153725":{"version":20220819153725,"path":"db/migrate/20220819153725_add_vulnerability_advisory_foreign_key_to_sbom_vulnerable_component_versions.rb","name":"AddVulnerabilityAdvisoryForeignKeyToSbomVulnerableComponentVersions","type":"regular","intro_on_current_branch":false},"20220915140802":{"version":20220915140802,"path":"db/migrate/20220915140802_create_merge_request_predictions.rb","name":"CreateMergeRequestPredictions","type":"regular","intro_on_current_branch":false},"20211116093739":{"version":20211116093739,"path":"db/migrate/20211116093739_add_foreign_key_to_incident_management_timeline_events_on_updated_by_user.rb","name":"AddForeignKeyToIncidentManagementTimelineEventsOnUpdatedByUser","type":"regular","intro_on_current_branch":false},"20210529164247":{"version":20210529164247,"path":"db/migrate/20210529164247_change_iterations_title_uniqueness_index.rb","name":"ChangeIterationsTitleUniquenessIndex","type":"regular","intro_on_current_branch":false},"20220714142424":{"version":20220714142424,"path":"db/migrate/20220714142424_update_trigger_update_vulnerability_reads_on_vulnerability_update.rb","name":"UpdateTriggerUpdateVulnerabilityReadsOnVulnerabilityUpdate","type":"regular","intro_on_current_branch":false},"20210507191949":{"version":20210507191949,"path":"db/migrate/20210507191949_add_remove_on_issue_close_to_labels.rb","name":"AddRemoveOnIssueCloseToLabels","type":"regular","intro_on_current_branch":false},"20210706151446":{"version":20210706151446,"path":"db/migrate/20210706151446_add_namespace_foreign_key_to_ci_pending_build.rb","name":"AddNamespaceForeignKeyToCiPendingBuild","type":"regular","intro_on_current_branch":false},"20210729123101":{"version":20210729123101,"path":"db/migrate/20210729123101_confirm_security_bot.rb","name":"ConfirmSecurityBot","type":"regular","intro_on_current_branch":false},"20210426094524":{"version":20210426094524,"path":"db/migrate/20210426094524_initialize_conversion_of_ci_builds_to_bigint.rb","name":"InitializeConversionOfCiBuildsToBigint","type":"regular","intro_on_current_branch":false},"20220901124637":{"version":20220901124637,"path":"db/migrate/20220901124637_add_last_downloaded_at_to_packages.rb","name":"AddLastDownloadedAtToPackages","type":"regular","intro_on_current_branch":false},"20220110170953":{"version":20220110170953,"path":"db/migrate/20220110170953_create_ci_secure_files.rb","name":"CreateCiSecureFiles","type":"regular","intro_on_current_branch":false},"20220503035437":{"version":20220503035437,"path":"db/migrate/20220503035437_add_text_limit_to_batched_background_migrations_gitlab_schema.rb","name":"AddTextLimitToBatchedBackgroundMigrationsGitlabSchema","type":"regular","intro_on_current_branch":false},"20210505170152":{"version":20210505170152,"path":"db/migrate/20210505170152_add_verification_indexes_to_merge_request_diff_details_table.rb","name":"AddVerificationIndexesToMergeRequestDiffDetailsTable","type":"regular","intro_on_current_branch":false},"20210923042324":{"version":20210923042324,"path":"db/migrate/20210923042324_limit_holder_name_on_user_credit_card_validations.rb","name":"LimitHolderNameOnUserCreditCardValidations","type":"regular","intro_on_current_branch":false},"20210505070612":{"version":20210505070612,"path":"db/migrate/20210505070612_create_packages_debian_group_distribution_keys.rb","name":"CreatePackagesDebianGroupDistributionKeys","type":"regular","intro_on_current_branch":false},"20210702124842":{"version":20210702124842,"path":"db/migrate/20210702124842_add_ci_job_trace_size_to_plan_limits.rb","name":"AddCiJobTraceSizeToPlanLimits","type":"regular","intro_on_current_branch":false},"20210531071107":{"version":20210531071107,"path":"db/migrate/20210531071107_enable_enforce_ssh_key_expiration.rb","name":"EnableEnforceSshKeyExpiration","type":"regular","intro_on_current_branch":false},"20220726230052":{"version":20220726230052,"path":"db/migrate/20220726230052_remove_tmp_index_project_membership_namespace_id_column.rb","name":"RemoveTmpIndexProjectMembershipNamespaceIdColumn","type":"regular","intro_on_current_branch":false},"20210707181536":{"version":20210707181536,"path":"db/migrate/20210707181536_create_vulnerability_finding_evidence_supporting_messages.rb","name":"CreateVulnerabilityFindingEvidenceSupportingMessages","type":"regular","intro_on_current_branch":false},"20210720130006":{"version":20210720130006,"path":"db/migrate/20210720130006_create_error_tracking_client_keys.rb","name":"CreateErrorTrackingClientKeys","type":"regular","intro_on_current_branch":false},"20220525123825":{"version":20220525123825,"path":"db/migrate/20220525123825_add_raw_to_ci_pipeline_variables.rb","name":"AddRawToCiPipelineVariables","type":"regular","intro_on_current_branch":false},"20211004062942":{"version":20211004062942,"path":"db/migrate/20211004062942_create_coverage_fuzzing_corpuses.rb","name":"CreateCoverageFuzzingCorpuses","type":"regular","intro_on_current_branch":false},"20220726171450":{"version":20220726171450,"path":"db/migrate/20220726171450_add_user_fk_to_ghost_user_migrations.rb","name":"AddUserFkToGhostUserMigrations","type":"regular","intro_on_current_branch":false},"20210726134950":{"version":20210726134950,"path":"db/migrate/20210726134950_add_integrated_to_error_tracking_setting.rb","name":"AddIntegratedToErrorTrackingSetting","type":"regular","intro_on_current_branch":false},"20210527185542":{"version":20210527185542,"path":"db/migrate/20210527185542_add_prevent_sharing_groups_outside_hierarchy_to_namespace_settings.rb","name":"AddPreventSharingGroupsOutsideHierarchyToNamespaceSettings","type":"regular","intro_on_current_branch":false},"20210614131002":{"version":20210614131002,"path":"db/migrate/20210614131002_add_detection_method_to_vulnerabilities_finding.rb","name":"AddDetectionMethodToVulnerabilitiesFinding","type":"regular","intro_on_current_branch":false},"20210617022324":{"version":20210617022324,"path":"db/migrate/20210617022324_create_incident_management_pending_alert_escalations.rb","name":"CreateIncidentManagementPendingAlertEscalations","type":"regular","intro_on_current_branch":false},"20220524184149":{"version":20220524184149,"path":"db/migrate/20220524184149_create_sync_project_namespace_details_trigger.rb","name":"CreateSyncProjectNamespaceDetailsTrigger","type":"regular","intro_on_current_branch":false},"20220714105122":{"version":20220714105122,"path":"db/migrate/20220714105122_update_default_project_import_level_on_namespace_settings.rb","name":"UpdateDefaultProjectImportLevelOnNamespaceSettings","type":"regular","intro_on_current_branch":false},"20210526155257":{"version":20210526155257,"path":"db/migrate/20210526155257_rename_sync_security_report_approval_rules_sidekiq_queue.rb","name":"RenameSyncSecurityReportApprovalRulesSidekiqQueue","type":"regular","intro_on_current_branch":false},"20210504085144":{"version":20210504085144,"path":"db/migrate/20210504085144_add_index_on_web_hook_project_id_recent_failures.rb","name":"AddIndexOnWebHookProjectIdRecentFailures","type":"regular","intro_on_current_branch":false},"20211101165656":{"version":20211101165656,"path":"db/migrate/20211101165656_create_upload_states.rb","name":"CreateUploadStates","type":"regular","intro_on_current_branch":false},"20220718083945":{"version":20220718083945,"path":"db/migrate/20220718083945_add_unique_project_download_limit_allowlist_to_namespace_settings.rb","name":"AddUniqueProjectDownloadLimitAllowlistToNamespaceSettings","type":"regular","intro_on_current_branch":false},"20210630224625":{"version":20210630224625,"path":"db/migrate/20210630224625_generate_customers_dot_jwt_signing_key.rb","name":"GenerateCustomersDotJwtSigningKey","type":"regular","intro_on_current_branch":false},"20220707181930":{"version":20220707181930,"path":"db/migrate/20220707181930_add_member_roles_relation_to_members.rb","name":"AddMemberRolesRelationToMembers","type":"regular","intro_on_current_branch":false},"20220422200633":{"version":20220422200633,"path":"db/migrate/20220422200633_fix_view_for_per_table_autovacuum_status.rb","name":"FixViewForPerTableAutovacuumStatus","type":"regular","intro_on_current_branch":false},"20220421180321":{"version":20220421180321,"path":"db/migrate/20220421180321_add_last_cleanup_deleted_tags_count_to_container_repository.rb","name":"AddLastCleanupDeletedTagsCountToContainerRepository","type":"regular","intro_on_current_branch":false},"20210614143954":{"version":20210614143954,"path":"db/migrate/20210614143954_add_unique_index_for_helm_packages.rb","name":"AddUniqueIndexForHelmPackages","type":"regular","intro_on_current_branch":false},"20220324091224":{"version":20220324091224,"path":"db/migrate/20220324091224_add_enforce_auth_checks_on_uploads_to_project_settings.rb","name":"AddEnforceAuthChecksOnUploadsToProjectSettings","type":"regular","intro_on_current_branch":false},"20211105125813":{"version":20211105125813,"path":"db/migrate/20211105125813_add_read_at_to_dependency_proxy_blobs.rb","name":"AddReadAtToDependencyProxyBlobs","type":"regular","intro_on_current_branch":false},"20210611082822":{"version":20210611082822,"path":"db/migrate/20210611082822_add_pages_file_entries_to_plan_limits.rb","name":"AddPagesFileEntriesToPlanLimits","type":"regular","intro_on_current_branch":false},"20210525184900":{"version":20210525184900,"path":"db/migrate/20210525184900_add_latest_pipeline_id_into_vulnerability_statistics_table.rb","name":"AddLatestPipelineIdIntoVulnerabilityStatisticsTable","type":"regular","intro_on_current_branch":false},"20210407002511":{"version":20210407002511,"path":"db/migrate/20210407002511_add_type_to_dast_site_profile.rb","name":"AddTypeToDastSiteProfile","type":"regular","intro_on_current_branch":false},"20211020095357":{"version":20211020095357,"path":"db/migrate/20211020095357_add_group_traversal_id_index.rb","name":"AddGroupTraversalIdIndex","type":"regular","intro_on_current_branch":false},"20210813111909":{"version":20210813111909,"path":"db/migrate/20210813111909_create_ci_build_trace_metadata.rb","name":"CreateCiBuildTraceMetadata","type":"regular","intro_on_current_branch":false},"20210913224558":{"version":20210913224558,"path":"db/migrate/20210913224558_update_dependency_proxy_manifests_uniqueness_constraint.rb","name":"UpdateDependencyProxyManifestsUniquenessConstraint","type":"regular","intro_on_current_branch":false},"20220412140446":{"version":20220412140446,"path":"db/migrate/20220412140446_add_unique_fingerprint_sha256_index_to_group_deploy_key.rb","name":"AddUniqueFingerprintSha256IndexToGroupDeployKey","type":"regular","intro_on_current_branch":false},"20220520120637":{"version":20220520120637,"path":"db/migrate/20220520120637_add_installable_conan_packages_index_to_packages.rb","name":"AddInstallableConanPackagesIndexToPackages","type":"regular","intro_on_current_branch":false},"20220628120708":{"version":20220628120708,"path":"db/migrate/20220628120708_create_namespace_bans.rb","name":"CreateNamespaceBans","type":"regular","intro_on_current_branch":false},"20210722132844":{"version":20210722132844,"path":"db/migrate/20210722132844_devops_adoption_drop_redundant_indexes.rb","name":"DevopsAdoptionDropRedundantIndexes","type":"regular","intro_on_current_branch":false},"20220112232605":{"version":20220112232605,"path":"db/migrate/20220112232605_add_member_namespace_index.rb","name":"AddMemberNamespaceIndex","type":"regular","intro_on_current_branch":false},"20220616182038":{"version":20220616182038,"path":"db/migrate/20220616182038_create_sbom_occurrences.rb","name":"CreateSbomOccurrences","type":"regular","intro_on_current_branch":false},"20210429131525":{"version":20210429131525,"path":"db/migrate/20210429131525_create_user_credit_card_validations.rb","name":"CreateUserCreditCardValidations","type":"regular","intro_on_current_branch":false},"20220601091804":{"version":20220601091804,"path":"db/migrate/20220601091804_add_semver_column_to_ci_runners.rb","name":"AddSemverColumnToCiRunners","type":"regular","intro_on_current_branch":false},"20220105082217":{"version":20220105082217,"path":"db/migrate/20220105082217_add_verification_token_to_external_ae_destinations.rb","name":"AddVerificationTokenToExternalAeDestinations","type":"regular","intro_on_current_branch":false},"20220902065635":{"version":20220902065635,"path":"db/migrate/20220902065635_add_partition_id_to_ci_stages.rb","name":"AddPartitionIdToCiStages","type":"regular","intro_on_current_branch":false},"20210427094931":{"version":20210427094931,"path":"db/migrate/20210427094931_add_execution_order_index_to_batched_background_migration_jobs.rb","name":"AddExecutionOrderIndexToBatchedBackgroundMigrationJobs","type":"regular","intro_on_current_branch":false},"20210416172516":{"version":20210416172516,"path":"db/migrate/20210416172516_create_vulnerability_finding_evidence_responses.rb","name":"CreateVulnerabilityFindingEvidenceResponses","type":"regular","intro_on_current_branch":false},"20220902065647":{"version":20220902065647,"path":"db/migrate/20220902065647_add_partition_id_to_ci_pipeline_variables.rb","name":"AddPartitionIdToCiPipelineVariables","type":"regular","intro_on_current_branch":false},"20220607011733":{"version":20220607011733,"path":"db/migrate/20220607011733_add_phone_verification_code_enabled_to_application_settings.rb","name":"AddPhoneVerificationCodeEnabledToApplicationSettings","type":"regular","intro_on_current_branch":false},"20211217050753":{"version":20211217050753,"path":"db/migrate/20211217050753_remove_artifacts_archive_id_foreign_key_from_project_pages_metadata.rb","name":"RemoveArtifactsArchiveIdForeignKeyFromProjectPagesMetadata","type":"regular","intro_on_current_branch":false},"20210602155056":{"version":20210602155056,"path":"db/migrate/20210602155056_add_merge_request_diff_commit_users.rb","name":"AddMergeRequestDiffCommitUsers","type":"regular","intro_on_current_branch":false},"20210430100947":{"version":20210430100947,"path":"db/migrate/20210430100947_add_elasticsearch_username_password_to_application_settings.rb","name":"AddElasticsearchUsernamePasswordToApplicationSettings","type":"regular","intro_on_current_branch":false},"20220105121325":{"version":20220105121325,"path":"db/migrate/20220105121325_add_route_namespace_reference.rb","name":"AddRouteNamespaceReference","type":"regular","intro_on_current_branch":false},"20210628154900":{"version":20210628154900,"path":"db/migrate/20210628154900_create_detached_partitions_table.rb","name":"CreateDetachedPartitionsTable","type":"regular","intro_on_current_branch":false},"20220302110724":{"version":20220302110724,"path":"db/migrate/20220302110724_add_group_features_table.rb","name":"AddGroupFeaturesTable","type":"regular","intro_on_current_branch":false},"20220616182016":{"version":20220616182016,"path":"db/migrate/20220616182016_create_sbom_sources.rb","name":"CreateSbomSources","type":"regular","intro_on_current_branch":false},"20210910015047":{"version":20210910015047,"path":"db/migrate/20210910015047_add_app_settings_dep_proxy_ttl_worker_capacity_check_constraint.rb","name":"AddAppSettingsDepProxyTtlWorkerCapacityCheckConstraint","type":"regular","intro_on_current_branch":false},"20211005092428":{"version":20211005092428,"path":"db/migrate/20211005092428_drop_time_range_partitioned_loose_fk.rb","name":"DropTimeRangePartitionedLooseFk","type":"regular","intro_on_current_branch":false},"20210625094554":{"version":20210625094554,"path":"db/migrate/20210625094554_create_error_tracking_error_events.rb","name":"CreateErrorTrackingErrorEvents","type":"regular","intro_on_current_branch":false},"20220405203843":{"version":20220405203843,"path":"db/migrate/20220405203843_add_text_limit_to_arkose_verify_url_application_settings.rb","name":"AddTextLimitToArkoseVerifyUrlApplicationSettings","type":"regular","intro_on_current_branch":false},"20220726025516":{"version":20220726025516,"path":"db/migrate/20220726025516_add_namespace_settings_unique_project_download_limit_allowlist_size_constraint.rb","name":"AddNamespaceSettingsUniqueProjectDownloadLimitAllowlistSizeConstraint","type":"regular","intro_on_current_branch":false},"20210323130831":{"version":20210323130831,"path":"db/migrate/20210323130831_add_merge_request_foreign_key_to_status_check_responses.rb","name":"AddMergeRequestForeignKeyToStatusCheckResponses","type":"regular","intro_on_current_branch":false},"20211008043855":{"version":20211008043855,"path":"db/migrate/20211008043855_remove_notes_trigram_index.rb","name":"RemoveNotesTrigramIndex","type":"regular","intro_on_current_branch":false},"20210427045604":{"version":20210427045604,"path":"db/migrate/20210427045604_initialize_conversion_of_ci_build_trace_chunks_to_bigint.rb","name":"InitializeConversionOfCiBuildTraceChunksToBigint","type":"regular","intro_on_current_branch":false},"20210526181820":{"version":20210526181820,"path":"db/migrate/20210526181820_add_index_to_vulnerability_statistics_on_latest_pipeline_id.rb","name":"AddIndexToVulnerabilityStatisticsOnLatestPipelineId","type":"regular","intro_on_current_branch":false},"20220817122907":{"version":20220817122907,"path":"db/migrate/20220817122907_re_add_show_diff_preview_in_email_to_project_settings.rb","name":"ReAddShowDiffPreviewInEmailToProjectSettings","type":"regular","intro_on_current_branch":false},"20220726154014":{"version":20220726154014,"path":"db/migrate/20220726154014_add_index_to_sbom_occurrences_component_id.rb","name":"AddIndexToSbomOccurrencesComponentId","type":"regular","intro_on_current_branch":false},"20211207154413":{"version":20211207154413,"path":"db/migrate/20211207154413_add_ci_runners_index_on_created_at_where_active_is_false.rb","name":"AddCiRunnersIndexOnCreatedAtWhereActiveIsFalse","type":"regular","intro_on_current_branch":false},"20220902065623":{"version":20220902065623,"path":"db/migrate/20220902065623_add_partition_id_to_ci_pipelines.rb","name":"AddPartitionIdToCiPipelines","type":"regular","intro_on_current_branch":false},"20210311120153":{"version":20210311120153,"path":"db/migrate/20210311120153_initialize_conversion_of_events_id_to_bigint.rb","name":"InitializeConversionOfEventsIdToBigint","type":"regular","intro_on_current_branch":false},"20220405125459":{"version":20220405125459,"path":"db/migrate/20220405125459_add_non_migrated_index_to_container_repositories.rb","name":"AddNonMigratedIndexToContainerRepositories","type":"regular","intro_on_current_branch":false},"20220902065314":{"version":20220902065314,"path":"db/migrate/20220902065314_create_ci_partitions.rb","name":"CreateCiPartitions","type":"regular","intro_on_current_branch":false},"20210526190259":{"version":20210526190259,"path":"db/migrate/20210526190259_add_ci_daily_pipeline_schedule_triggers_to_plan_limits.rb","name":"AddCiDailyPipelineScheduleTriggersToPlanLimits","type":"regular","intro_on_current_branch":false},"20220707190546":{"version":20220707190546,"path":"db/migrate/20220707190546_add_plan_limits_max_size_cyclonedx_report_column.rb","name":"AddPlanLimitsMaxSizeCyclonedxReportColumn","type":"regular","intro_on_current_branch":false},"20220708100532":{"version":20220708100532,"path":"db/migrate/20220708100532_add_unique_index_on_ci_runner_versions_on_status_and_version.rb","name":"AddUniqueIndexOnCiRunnerVersionsOnStatusAndVersion","type":"regular","intro_on_current_branch":false},"20220808190124":{"version":20220808190124,"path":"db/migrate/20220808190124_add_id_token_to_ci_builds_metadata.rb","name":"AddIdTokenToCiBuildsMetadata","type":"regular","intro_on_current_branch":false},"20210413121101":{"version":20210413121101,"path":"db/migrate/20210413121101_add_created_at_web_hook_id_index_to_partitioned_web_hook_log.rb","name":"AddCreatedAtWebHookIdIndexToPartitionedWebHookLog","type":"regular","intro_on_current_branch":false},"20210406063442":{"version":20210406063442,"path":"db/migrate/20210406063442_create_namespaces_id_parent_id_partial_index.rb","name":"CreateNamespacesIdParentIdPartialIndex","type":"regular","intro_on_current_branch":false},"20210721135638":{"version":20210721135638,"path":"db/migrate/20210721135638_add_triggers_to_integrations_type_new.rb","name":"AddTriggersToIntegrationsTypeNew","type":"regular","intro_on_current_branch":false},"20220805154101":{"version":20220805154101,"path":"db/migrate/20220805154101_add_allow_run_pipelines_in_the_parent_project_setting.rb","name":"AddAllowRunPipelinesInTheParentProjectSetting","type":"regular","intro_on_current_branch":false},"20210721211602":{"version":20210721211602,"path":"db/migrate/20210721211602_add_vulnerability_amount_column_into_approval_project_rules.rb","name":"AddVulnerabilityAmountColumnIntoApprovalProjectRules","type":"regular","intro_on_current_branch":false},"20220914174705":{"version":20220914174705,"path":"db/migrate/20220914174705_remove_not_null_constraint_from_sbom_source_fingerprint.rb","name":"RemoveNotNullConstraintFromSbomSourceFingerprint","type":"regular","intro_on_current_branch":false},"20220307203458":{"version":20220307203458,"path":"db/migrate/20220307203458_rename_user_email_lookup_limit_setting_to_search_settings.rb","name":"RenameUserEmailLookupLimitSettingToSearchSettings","type":"regular","intro_on_current_branch":false},"20210430154631":{"version":20210430154631,"path":"db/migrate/20210430154631_add_slice_multiplier_and_max_slices_to_elastic_reindexing_task.rb","name":"AddSliceMultiplierAndMaxSlicesToElasticReindexingTask","type":"regular","intro_on_current_branch":false},"20210713123345":{"version":20210713123345,"path":"db/migrate/20210713123345_create_dast_profile_schedule.rb","name":"CreateDastProfileSchedule","type":"regular","intro_on_current_branch":false},"20210629153519":{"version":20210629153519,"path":"db/migrate/20210629153519_add_index_to_bulk_import_entities_on_bulk_import_id_and_status.rb","name":"AddIndexToBulkImportEntitiesOnBulkImportIdAndStatus","type":"regular","intro_on_current_branch":false},"20220329092245":{"version":20220329092245,"path":"db/migrate/20220329092245_add_password_chars_requirement_to_application_settings.rb","name":"AddPasswordCharsRequirementToApplicationSettings","type":"regular","intro_on_current_branch":false},"20211007090229":{"version":20211007090229,"path":"db/migrate/20211007090229_create_issue_search_table.rb","name":"CreateIssueSearchTable","type":"regular","intro_on_current_branch":false},"20210609192728":{"version":20210609192728,"path":"db/migrate/20210609192728_add_status_check_foreign_key_to_external_status_check_id.rb","name":"AddStatusCheckForeignKeyToExternalStatusCheckId","type":"regular","intro_on_current_branch":false},"20210818034001":{"version":20210818034001,"path":"db/migrate/20210818034001_index_historical_data_on_recorded_at.rb","name":"IndexHistoricalDataOnRecordedAt","type":"regular","intro_on_current_branch":false},"20210719192928":{"version":20210719192928,"path":"db/migrate/20210719192928_add_invite_email_success_to_member.rb","name":"AddInviteEmailSuccessToMember","type":"regular","intro_on_current_branch":false},"20220617141347":{"version":20220617141347,"path":"db/migrate/20220617141347_create_ci_secure_file_states.rb","name":"CreateCiSecureFileStates","type":"regular","intro_on_current_branch":false},"20210308190413":{"version":20210308190413,"path":"db/migrate/20210308190413_change_batched_background_migrations_batch_class_name_default.rb","name":"ChangeBatchedBackgroundMigrationsBatchClassNameDefault","type":"regular","intro_on_current_branch":false},"20220426130217":{"version":20220426130217,"path":"db/migrate/20220426130217_add_max_export_size_to_application_settings.rb","name":"AddMaxExportSizeToApplicationSettings","type":"regular","intro_on_current_branch":false},"20210902171808":{"version":20210902171808,"path":"db/migrate/20210902171808_set_default_job_token_scope_false.rb","name":"SetDefaultJobTokenScopeFalse","type":"regular","intro_on_current_branch":false},"20210313045845":{"version":20210313045845,"path":"db/migrate/20210313045845_add_verification_indexes_to_snippet_repositories.rb","name":"AddVerificationIndexesToSnippetRepositories","type":"regular","intro_on_current_branch":false},"20210715074359":{"version":20210715074359,"path":"db/migrate/20210715074359_add_foreign_key_to_dast_profile_schedules_on_dast_profile.rb","name":"AddForeignKeyToDastProfileSchedulesOnDastProfile","type":"regular","intro_on_current_branch":false},"20220811092244":{"version":20220811092244,"path":"db/migrate/20220811092244_create_ml_candidates.rb","name":"CreateMlCandidates","type":"regular","intro_on_current_branch":false},"20211202041233":{"version":20211202041233,"path":"db/migrate/20211202041233_add_deployment_foreign_key_to_deployment_approvals.rb","name":"AddDeploymentForeignKeyToDeploymentApprovals","type":"regular","intro_on_current_branch":false},"20210422142647":{"version":20210422142647,"path":"db/migrate/20210422142647_add_project_id_next_run_at_index_to_container_expiration_policies.rb","name":"AddProjectIdNextRunAtIndexToContainerExpirationPolicies","type":"regular","intro_on_current_branch":false},"20220524191259":{"version":20220524191259,"path":"db/migrate/20220524191259_add_application_settings_container_registry_pre_import_tags_rate_constraint.rb","name":"AddApplicationSettingsContainerRegistryPreImportTagsRateConstraint","type":"regular","intro_on_current_branch":false},"20210729125641":{"version":20210729125641,"path":"db/migrate/20210729125641_add_foreign_key_to_project_on_project_topic.rb","name":"AddForeignKeyToProjectOnProjectTopic","type":"regular","intro_on_current_branch":false},"20220511191503":{"version":20220511191503,"path":"db/migrate/20220511191503_add_pipeline_create_limit_per_project_user_sha_to_application_settings.rb","name":"AddPipelineCreateLimitPerProjectUserShaToApplicationSettings","type":"regular","intro_on_current_branch":false},"20210604085600":{"version":20210604085600,"path":"db/migrate/20210604085600_rename_status_check_responses_approval_rule.rb","name":"RenameStatusCheckResponsesApprovalRule","type":"regular","intro_on_current_branch":false},"20210624112821":{"version":20210624112821,"path":"db/migrate/20210624112821_add_devops_adoption_coverage_fuzzing.rb","name":"AddDevopsAdoptionCoverageFuzzing","type":"regular","intro_on_current_branch":false},"20220720162123":{"version":20220720162123,"path":"db/migrate/20220720162123_update_vulnerability_reads_triggers_to_set_namespace_id.rb","name":"UpdateVulnerabilityReadsTriggersToSetNamespaceId","type":"regular","intro_on_current_branch":false},"20220916103311":{"version":20220916103311,"path":"db/migrate/20220916103311_add_index_on_jira_connect_installations_instance_url.rb","name":"AddIndexOnJiraConnectInstallationsInstanceUrl","type":"regular","intro_on_current_branch":false},"20220314204009":{"version":20220314204009,"path":"db/migrate/20220314204009_add_approval_rule_fk_to_deployment_approvals.rb","name":"AddApprovalRuleFkToDeploymentApprovals","type":"regular","intro_on_current_branch":false},"20220803145637":{"version":20220803145637,"path":"db/migrate/20220803145637_create_user_project_callout.rb","name":"CreateUserProjectCallout","type":"regular","intro_on_current_branch":false},"20210706152139":{"version":20210706152139,"path":"db/migrate/20210706152139_add_index_type_to_postgres_indexes_view.rb","name":"AddIndexTypeToPostgresIndexesView","type":"regular","intro_on_current_branch":false},"20210817084338":{"version":20210817084338,"path":"db/migrate/20210817084338_add_foreign_key_from_ci_build_metadata_to_ci_job_artifacts.rb","name":"AddForeignKeyFromCiBuildMetadataToCiJobArtifacts","type":"regular","intro_on_current_branch":false},"20210302160544":{"version":20210302160544,"path":"db/migrate/20210302160544_add_index_to_security_orchestration_policy.rb","name":"AddIndexToSecurityOrchestrationPolicy","type":"regular","intro_on_current_branch":false},"20220708142744":{"version":20220708142744,"path":"db/migrate/20220708142744_add_composite_index_for_protected_environments.rb","name":"AddCompositeIndexForProtectedEnvironments","type":"regular","intro_on_current_branch":false},"20220525124104":{"version":20220525124104,"path":"db/migrate/20220525124104_add_raw_to_ci_pipeline_schedule_variables.rb","name":"AddRawToCiPipelineScheduleVariables","type":"regular","intro_on_current_branch":false},"20211026143238":{"version":20211026143238,"path":"db/migrate/20211026143238_remove_index_releases_on_author_id.rb","name":"RemoveIndexReleasesOnAuthorId","type":"regular","intro_on_current_branch":false},"20210312140029":{"version":20210312140029,"path":"db/migrate/20210312140029_add_owner_and_id_index_on_active_ci_pipeline_schedules.rb","name":"AddOwnerAndIdIndexOnActiveCiPipelineSchedules","type":"regular","intro_on_current_branch":false},"20210929025600":{"version":20210929025600,"path":"db/migrate/20210929025600_add_phone_to_user_details.rb","name":"AddPhoneToUserDetails","type":"regular","intro_on_current_branch":false},"20211119111006":{"version":20211119111006,"path":"db/migrate/20211119111006_create_job_artifact_states.rb","name":"CreateJobArtifactStates","type":"regular","intro_on_current_branch":false},"20210329095548":{"version":20210329095548,"path":"db/migrate/20210329095548_add_target_project_and_source_branch_index_to_merge_request.rb","name":"AddTargetProjectAndSourceBranchIndexToMergeRequest","type":"regular","intro_on_current_branch":false},"20210910141043":{"version":20210910141043,"path":"db/migrate/20210910141043_change_ci_minutes_additional_pack_text_limit.rb","name":"ChangeCiMinutesAdditionalPackTextLimit","type":"regular","intro_on_current_branch":false},"20210413123832":{"version":20210413123832,"path":"db/migrate/20210413123832_add_index_on_web_hook_id_to_partitioned_web_hook_log.rb","name":"AddIndexOnWebHookIdToPartitionedWebHookLog","type":"regular","intro_on_current_branch":false},"20210722074256":{"version":20210722074256,"path":"db/migrate/20210722074256_add_user_index_to_escalation_rules.rb","name":"AddUserIndexToEscalationRules","type":"regular","intro_on_current_branch":false},"20220131135725":{"version":20220131135725,"path":"db/migrate/20220131135725_add_severity_level_to_merge_requests_compliance_violations.rb","name":"AddSeverityLevelToMergeRequestsComplianceViolations","type":"regular","intro_on_current_branch":false},"20220215164709":{"version":20220215164709,"path":"db/migrate/20220215164709_update_application_settings_container_registry_exp_pol_worker_capacity_default.rb","name":"UpdateApplicationSettingsContainerRegistryExpPolWorkerCapacityDefault","type":"regular","intro_on_current_branch":false},"20220920022404":{"version":20220920022404,"path":"db/migrate/20220920022404_remove_temp_index_null_project_namespace_id.rb","name":"RemoveTempIndexNullProjectNamespaceId","type":"regular","intro_on_current_branch":false},"20220420135245":{"version":20220420135245,"path":"db/migrate/20220420135245_fix_batched_background_migration_default_arguments.rb","name":"FixBatchedBackgroundMigrationDefaultArguments","type":"regular","intro_on_current_branch":false},"20220124200927":{"version":20220124200927,"path":"db/migrate/20220124200927_add_index_to_issues.rb","name":"AddIndexToIssues","type":"regular","intro_on_current_branch":false},"20220203123333":{"version":20220203123333,"path":"db/migrate/20220203123333_add_batched_migration_max_batch.rb","name":"AddBatchedMigrationMaxBatch","type":"regular","intro_on_current_branch":false},"20220630202329":{"version":20220630202329,"path":"db/migrate/20220630202329_add_partial_index_on_oauth_access_tokens_revoked_at_with_order.rb","name":"AddPartialIndexOnOauthAccessTokensRevokedAtWithOrder","type":"regular","intro_on_current_branch":false},"20220617123144":{"version":20220617123144,"path":"db/migrate/20220617123144_drop_temp_index_on_projects_on_id_and_runners_token_encrypted.rb","name":"DropTempIndexOnProjectsOnIdAndRunnersTokenEncrypted","type":"regular","intro_on_current_branch":false},"20210818061156":{"version":20210818061156,"path":"db/migrate/20210818061156_remove_project_profile_compound_index_from_dast_profile_schedules.rb","name":"RemoveProjectProfileCompoundIndexFromDastProfileSchedules","type":"regular","intro_on_current_branch":false},"20210505124816":{"version":20210505124816,"path":"db/migrate/20210505124816_add_text_limit_to_elasticsearch_username.rb","name":"AddTextLimitToElasticsearchUsername","type":"regular","intro_on_current_branch":false},"20220819162852":{"version":20220819162852,"path":"db/migrate/20220819162852_add_sbom_component_version_foreign_key_to_sbom_vulnerable_component_versions.rb","name":"AddSbomComponentVersionForeignKeyToSbomVulnerableComponentVersions","type":"regular","intro_on_current_branch":false},"20210826124311":{"version":20210826124311,"path":"db/migrate/20210826124311_add_index_to_error_tracking_error.rb","name":"AddIndexToErrorTrackingError","type":"regular","intro_on_current_branch":false},"20210303193605":{"version":20210303193605,"path":"db/migrate/20210303193605_add_text_limits_to_bulk_imports_trackers_jid_and_pipeline_name.rb","name":"AddTextLimitsToBulkImportsTrackersJidAndPipelineName","type":"regular","intro_on_current_branch":false},"20211018161447":{"version":20211018161447,"path":"db/migrate/20211018161447_fix_double_entries_in_postgres_index_view.rb","name":"FixDoubleEntriesInPostgresIndexView","type":"regular","intro_on_current_branch":false},"20220601223501":{"version":20220601223501,"path":"db/migrate/20220601223501_add_vulnerability_related_columns.rb","name":"AddVulnerabilityRelatedColumns","type":"regular","intro_on_current_branch":false},"20220104174445":{"version":20220104174445,"path":"db/migrate/20220104174445_add_ci_runners_index_on_active_state.rb","name":"AddCiRunnersIndexOnActiveState","type":"regular","intro_on_current_branch":false},"20220413075921":{"version":20220413075921,"path":"db/migrate/20220413075921_update_index_on_packages_build_infos.rb","name":"UpdateIndexOnPackagesBuildInfos","type":"regular","intro_on_current_branch":false},"20210510191552":{"version":20210510191552,"path":"db/migrate/20210510191552_add_limit_to_findings_evidences_request_body.rb","name":"AddLimitToFindingsEvidencesRequestBody","type":"regular","intro_on_current_branch":false},"20220117082611":{"version":20220117082611,"path":"db/migrate/20220117082611_add_text_limit_to_exad_verification_tokens.rb","name":"AddTextLimitToExadVerificationTokens","type":"regular","intro_on_current_branch":false},"20220322205004":{"version":20220322205004,"path":"db/migrate/20220322205004_change_search_rate_limit_default_values.rb","name":"ChangeSearchRateLimitDefaultValues","type":"regular","intro_on_current_branch":false},"20210818200455":{"version":20210818200455,"path":"db/migrate/20210818200455_add_file_template_project_foreign_key_to_service_desk_settings.rb","name":"AddFileTemplateProjectForeignKeyToServiceDeskSettings","type":"regular","intro_on_current_branch":false},"20210504153354":{"version":20210504153354,"path":"db/migrate/20210504153354_create_clusters_integration_elasticstack.rb","name":"CreateClustersIntegrationElasticstack","type":"regular","intro_on_current_branch":false},"20211110015252":{"version":20211110015252,"path":"db/migrate/20211110015252_add_agent_activity_events_foreign_keys.rb","name":"AddAgentActivityEventsForeignKeys","type":"regular","intro_on_current_branch":false},"20210311120154":{"version":20210311120154,"path":"db/migrate/20210311120154_initialize_conversion_of_push_event_payloads_event_id_to_bigint.rb","name":"InitializeConversionOfPushEventPayloadsEventIdToBigint","type":"regular","intro_on_current_branch":false},"20220107091629":{"version":20220107091629,"path":"db/migrate/20220107091629_add_route_namespace_index.rb","name":"AddRouteNamespaceIndex","type":"regular","intro_on_current_branch":false},"20210902171406":{"version":20210902171406,"path":"db/migrate/20210902171406_add_latest_column_into_the_security_scans_table.rb","name":"AddLatestColumnIntoTheSecurityScansTable","type":"regular","intro_on_current_branch":false},"20211204010826":{"version":20211204010826,"path":"db/migrate/20211204010826_add_index_snippets_on_project_id_and_title.rb","name":"AddIndexSnippetsOnProjectIdAndTitle","type":"regular","intro_on_current_branch":false},"20211201143042":{"version":20211201143042,"path":"db/migrate/20211201143042_create_lfs_object_states.rb","name":"CreateLfsObjectStates","type":"regular","intro_on_current_branch":false},"20210604051742":{"version":20210604051742,"path":"db/migrate/20210604051742_add_ci_build_id_fk_to_dast_scanner_profiles_builds.rb","name":"AddCiBuildIdFkToDastScannerProfilesBuilds","type":"regular","intro_on_current_branch":false},"20220607115703":{"version":20220607115703,"path":"db/migrate/20220607115703_drop_ci_job_artifact_states_job_artifact_id_sequence.rb","name":"DropCiJobArtifactStatesJobArtifactIdSequence","type":"regular","intro_on_current_branch":false},"20220125122725":{"version":20220125122725,"path":"db/migrate/20220125122725_add_topics_non_private_projects_count_index.rb","name":"AddTopicsNonPrivateProjectsCountIndex","type":"regular","intro_on_current_branch":false},"20210512183309":{"version":20210512183309,"path":"db/migrate/20210512183309_add_body_to_findings_evidences_response.rb","name":"AddBodyToFindingsEvidencesResponse","type":"regular","intro_on_current_branch":false},"20210804202057":{"version":20210804202057,"path":"db/migrate/20210804202057_add_tmp_index_approval_project_rules_scanners.rb","name":"AddTmpIndexApprovalProjectRulesScanners","type":"regular","intro_on_current_branch":false},"20210427084924":{"version":20210427084924,"path":"db/migrate/20210427084924_initialize_conversion_of_ci_builds_runner_session_to_bigint.rb","name":"InitializeConversionOfCiBuildsRunnerSessionToBigint","type":"regular","intro_on_current_branch":false},"20210419224834":{"version":20210419224834,"path":"db/migrate/20210419224834_update_issues_iteration_foreign_key.rb","name":"UpdateIssuesIterationForeignKey","type":"regular","intro_on_current_branch":false},"20211110100050":{"version":20211110100050,"path":"db/migrate/20211110100050_add_has_shimo_to_project_settings.rb","name":"AddHasShimoToProjectSettings","type":"regular","intro_on_current_branch":false},"20211108154841":{"version":20211108154841,"path":"db/migrate/20211108154841_insert_pipeline_triggers_application_limits.rb","name":"InsertPipelineTriggersApplicationLimits","type":"regular","intro_on_current_branch":false},"20210726202748":{"version":20210726202748,"path":"db/migrate/20210726202748_add_vulnerability_severities_into_approval_project_rules.rb","name":"AddVulnerabilitySeveritiesIntoApprovalProjectRules","type":"regular","intro_on_current_branch":false},"20220404114106":{"version":20220404114106,"path":"db/migrate/20220404114106_add_container_registry_size_to_project_statistics.rb","name":"AddContainerRegistrySizeToProjectStatistics","type":"regular","intro_on_current_branch":false},"20220106111958":{"version":20220106111958,"path":"db/migrate/20220106111958_add_insert_or_update_vulnerability_reads_trigger.rb","name":"AddInsertOrUpdateVulnerabilityReadsTrigger","type":"regular","intro_on_current_branch":false},"20210816095826":{"version":20210816095826,"path":"db/migrate/20210816095826_add_unique_index_on_dast_profile_to_dast_profile_schedules.rb","name":"AddUniqueIndexOnDastProfileToDastProfileSchedules","type":"regular","intro_on_current_branch":false},"20220723120039":{"version":20220723120039,"path":"db/migrate/20220723120039_add_author_id_to_vulnerability_state_transitions.rb","name":"AddAuthorIdToVulnerabilityStateTransitions","type":"regular","intro_on_current_branch":false},"20210610102410":{"version":20210610102410,"path":"db/migrate/20210610102410_add_protected_attribute_to_pending_builds.rb","name":"AddProtectedAttributeToPendingBuilds","type":"regular","intro_on_current_branch":false},"20220301003502":{"version":20220301003502,"path":"db/migrate/20220301003502_add_security_orchestration_policy_configuration_namespace_index.rb","name":"AddSecurityOrchestrationPolicyConfigurationNamespaceIndex","type":"regular","intro_on_current_branch":false},"20220822102651":{"version":20220822102651,"path":"db/migrate/20220822102651_add_namespace_id_to_broadcast_message.rb","name":"AddNamespaceIdToBroadcastMessage","type":"regular","intro_on_current_branch":false},"20210901065504":{"version":20210901065504,"path":"db/migrate/20210901065504_add_index_on_name_and_id_to_public_groups.rb","name":"AddIndexOnNameAndIdToPublicGroups","type":"regular","intro_on_current_branch":false},"20210707151536":{"version":20210707151536,"path":"db/migrate/20210707151536_create_vulnerability_finding_evidence_sources.rb","name":"CreateVulnerabilityFindingEvidenceSources","type":"regular","intro_on_current_branch":false},"20210627204936":{"version":20210627204936,"path":"db/migrate/20210627204936_add_plan_limits_max_size_cluster_image_scanning_column.rb","name":"AddPlanLimitsMaxSizeClusterImageScanningColumn","type":"regular","intro_on_current_branch":false},"20220324171254":{"version":20220324171254,"path":"db/migrate/20220324171254_add_public_git_lab_runner_releases_url_to_application_settings.rb","name":"AddPublicGitLabRunnerReleasesUrlToApplicationSettings","type":"regular","intro_on_current_branch":false},"20220125230538":{"version":20220125230538,"path":"db/migrate/20220125230538_add_compound_index_on_project_id_and_id_for_vulnerabilities.rb","name":"AddCompoundIndexOnProjectIdAndIdForVulnerabilities","type":"regular","intro_on_current_branch":false},"20210302212623":{"version":20210302212623,"path":"db/migrate/20210302212623_rename_vuln_fingerprints_indexes.rb","name":"RenameVulnFingerprintsIndexes","type":"regular","intro_on_current_branch":false},"20210604051917":{"version":20210604051917,"path":"db/migrate/20210604051917_add_dast_scanner_profile_id_fk_to_dast_scanner_profiles_builds.rb","name":"AddDastScannerProfileIdFkToDastScannerProfilesBuilds","type":"regular","intro_on_current_branch":false},"20210809014918":{"version":20210809014918,"path":"db/migrate/20210809014918_add_agent_group_authorizations_foreign_keys.rb","name":"AddAgentGroupAuthorizationsForeignKeys","type":"regular","intro_on_current_branch":false},"20220906155105":{"version":20220906155105,"path":"db/migrate/20220906155105_add_start_time_and_end_time_and_status_to_ml_candidates.rb","name":"AddStartTimeAndEndTimeAndStatusToMlCandidates","type":"regular","intro_on_current_branch":false},"20210324131727":{"version":20210324131727,"path":"db/migrate/20210324131727_migrate_elastic_index_settings.rb","name":"MigrateElasticIndexSettings","type":"regular","intro_on_current_branch":false},"20220601101800":{"version":20220601101800,"path":"db/migrate/20220601101800_add_index_on_runner_id_and_semver_columns.rb","name":"AddIndexOnRunnerIdAndSemverColumns","type":"regular","intro_on_current_branch":false},"20210407140539":{"version":20210407140539,"path":"db/migrate/20210407140539_add_verification_state_and_started_at_to_terraform_state_version_table.rb","name":"AddVerificationStateAndStartedAtToTerraformStateVersionTable","type":"regular","intro_on_current_branch":false},"20210716074555":{"version":20210716074555,"path":"db/migrate/20210716074555_revert_default_job_token_scope.rb","name":"RevertDefaultJobTokenScope","type":"regular","intro_on_current_branch":false},"20220816135816":{"version":20220816135816,"path":"db/migrate/20220816135816_create_sbom_vulnerable_component_versions.rb","name":"CreateSbomVulnerableComponentVersions","type":"regular","intro_on_current_branch":false},"20210316152500":{"version":20210316152500,"path":"db/migrate/20210316152500_add_index_ci_stages_on_pipeline_id_and_id.rb","name":"AddIndexCiStagesOnPipelineIdAndId","type":"regular","intro_on_current_branch":false},"20211021115409":{"version":20211021115409,"path":"db/migrate/20211021115409_add_color_to_epics.rb","name":"AddColorToEpics","type":"regular","intro_on_current_branch":false},"20210721145029":{"version":20210721145029,"path":"db/migrate/20210721145029_add_state_to_members.rb","name":"AddStateToMembers","type":"regular","intro_on_current_branch":false},"20211210031721":{"version":20211210031721,"path":"db/migrate/20211210031721_change_user_details_phone_text_limit.rb","name":"ChangeUserDetailsPhoneTextLimit","type":"regular","intro_on_current_branch":false},"20211119154221":{"version":20211119154221,"path":"db/migrate/20211119154221_create_pages_deployment_states.rb","name":"CreatePagesDeploymentStates","type":"regular","intro_on_current_branch":false},"20210310000627":{"version":20210310000627,"path":"db/migrate/20210310000627_add_idx_vulnerability_occurrences_dedup.rb","name":"AddIdxVulnerabilityOccurrencesDedup","type":"regular","intro_on_current_branch":false},"20220204154220":{"version":20220204154220,"path":"db/migrate/20220204154220_add_index_on_greatest_done_at_to_container_repositories.rb","name":"AddIndexOnGreatestDoneAtToContainerRepositories","type":"regular","intro_on_current_branch":false},"20211025103744":{"version":20211025103744,"path":"db/migrate/20211025103744_add_state_id_to_vsa_issue_stage_events.rb","name":"AddStateIdToVsaIssueStageEvents","type":"regular","intro_on_current_branch":false},"20220914070927":{"version":20220914070927,"path":"db/migrate/20220914070927_finalize_invalid_project_member_cleanup.rb","name":"FinalizeInvalidProjectMemberCleanup","type":"regular","intro_on_current_branch":false},"20211110092710":{"version":20211110092710,"path":"db/migrate/20211110092710_create_issue_emails.rb","name":"CreateIssueEmails","type":"regular","intro_on_current_branch":false},"20220909094752":{"version":20220909094752,"path":"db/migrate/20220909094752_add_free_user_cap_over_limt_notified_at_to_namespace_details.rb","name":"AddFreeUserCapOverLimtNotifiedAtToNamespaceDetails","type":"regular","intro_on_current_branch":false},"20210624180613":{"version":20210624180613,"path":"db/migrate/20210624180613_add_last_synced_at_to_licenses.rb","name":"AddLastSyncedAtToLicenses","type":"regular","intro_on_current_branch":false},"20210621044000":{"version":20210621044000,"path":"db/migrate/20210621044000_rename_services_indexes_to_integrations.rb","name":"RenameServicesIndexesToIntegrations","type":"regular","intro_on_current_branch":false},"20220331174026":{"version":20220331174026,"path":"db/migrate/20220331174026_add_submit_field_to_dast_site_profiles.rb","name":"AddSubmitFieldToDastSiteProfiles","type":"regular","intro_on_current_branch":false},"20211019153615":{"version":20211019153615,"path":"db/migrate/20211019153615_add_state_to_merge_request_assignees.rb","name":"AddStateToMergeRequestAssignees","type":"regular","intro_on_current_branch":false},"20211004122540":{"version":20211004122540,"path":"db/migrate/20211004122540_create_member_tasks.rb","name":"CreateMemberTasks","type":"regular","intro_on_current_branch":false},"20220125122228":{"version":20220125122228,"path":"db/migrate/20220125122228_add_topics_non_private_projects_count.rb","name":"AddTopicsNonPrivateProjectsCount","type":"regular","intro_on_current_branch":false},"20210422022825":{"version":20210422022825,"path":"db/migrate/20210422022825_initialize_conversion_of_ci_sources_pipelines_source_job_id_to_bigint.rb","name":"InitializeConversionOfCiSourcesPipelinesSourceJobIdToBigint","type":"regular","intro_on_current_branch":false},"20220712144843":{"version":20220712144843,"path":"db/migrate/20220712144843_rename_jira_tracker_data_service_id_to_integration_id.rb","name":"RenameJiraTrackerDataServiceIdToIntegrationId","type":"regular","intro_on_current_branch":false},"20220316202402":{"version":20220316202402,"path":"db/migrate/20220316202402_add_text_limit_to_container_repositories_migration_plan.rb","name":"AddTextLimitToContainerRepositoriesMigrationPlan","type":"regular","intro_on_current_branch":false},"20210617180131":{"version":20210617180131,"path":"db/migrate/20210617180131_migrate_usage_ping_sidekiq_queue.rb","name":"MigrateUsagePingSidekiqQueue","type":"regular","intro_on_current_branch":false},"20220317170122":{"version":20220317170122,"path":"db/migrate/20220317170122_add_notification_level_to_namespace_root_storage_statistics.rb","name":"AddNotificationLevelToNamespaceRootStorageStatistics","type":"regular","intro_on_current_branch":false},"20211115154103":{"version":20211115154103,"path":"db/migrate/20211115154103_add_created_at_to_project_monthly_usage.rb","name":"AddCreatedAtToProjectMonthlyUsage","type":"regular","intro_on_current_branch":false},"20220831182105":{"version":20220831182105,"path":"db/migrate/20220831182105_add_constraints_view.rb","name":"AddConstraintsView","type":"regular","intro_on_current_branch":false},"20210614142311":{"version":20210614142311,"path":"db/migrate/20210614142311_add_running_container_scanning_max_size_to_plan_limits.rb","name":"AddRunningContainerScanningMaxSizeToPlanLimits","type":"regular","intro_on_current_branch":false},"20210423054022":{"version":20210423054022,"path":"db/migrate/20210423054022_create_dast_site_profiles_pipelines.rb","name":"CreateDastSiteProfilesPipelines","type":"regular","intro_on_current_branch":false},"20220712094945":{"version":20220712094945,"path":"db/migrate/20220712094945_add_include_for_free_user_cap_preview_to_namespace_settings.rb","name":"AddIncludeForFreeUserCapPreviewToNamespaceSettings","type":"regular","intro_on_current_branch":false},"20210906100021":{"version":20210906100021,"path":"db/migrate/20210906100021_delete_project_namespace_trigger.rb","name":"DeleteProjectNamespaceTrigger","type":"regular","intro_on_current_branch":false},"20210616185947":{"version":20210616185947,"path":"db/migrate/20210616185947_add_mailgun_settings_to_application_setting.rb","name":"AddMailgunSettingsToApplicationSetting","type":"regular","intro_on_current_branch":false},"20210610153556":{"version":20210610153556,"path":"db/migrate/20210610153556_delete_legacy_operations_feature_flags.rb","name":"DeleteLegacyOperationsFeatureFlags","type":"regular","intro_on_current_branch":false},"20220321150028":{"version":20220321150028,"path":"db/migrate/20220321150028_add_started_at_to_batched_background_migrations_table.rb","name":"AddStartedAtToBatchedBackgroundMigrationsTable","type":"regular","intro_on_current_branch":false},"20210428151238":{"version":20210428151238,"path":"db/migrate/20210428151238_validate_foreign_key_on_group_hooks.rb","name":"ValidateForeignKeyOnGroupHooks","type":"regular","intro_on_current_branch":false},"20220420034519":{"version":20220420034519,"path":"db/migrate/20220420034519_add_text_limit_to_in_product_marketing_email_campaign.rb","name":"AddTextLimitToInProductMarketingEmailCampaign","type":"regular","intro_on_current_branch":false},"20210611101034":{"version":20210611101034,"path":"db/migrate/20210611101034_add_devops_adoption_sast_dast.rb","name":"AddDevopsAdoptionSastDast","type":"regular","intro_on_current_branch":false},"20220106163326":{"version":20220106163326,"path":"db/migrate/20220106163326_add_has_issues_on_vulnerability_reads_trigger.rb","name":"AddHasIssuesOnVulnerabilityReadsTrigger","type":"regular","intro_on_current_branch":false},"20220111200254":{"version":20220111200254,"path":"db/migrate/20220111200254_remove_index_from_merge_requests.rb","name":"RemoveIndexFromMergeRequests","type":"regular","intro_on_current_branch":false},"20220503102855":{"version":20220503102855,"path":"db/migrate/20220503102855_add_namespace_ci_cd_settings_table.rb","name":"AddNamespaceCiCdSettingsTable","type":"regular","intro_on_current_branch":false},"20210411212813":{"version":20210411212813,"path":"db/migrate/20210411212813_add_clusters_integrations_prometheus.rb","name":"AddClustersIntegrationsPrometheus","type":"regular","intro_on_current_branch":false},"20211223125921":{"version":20211223125921,"path":"db/migrate/20211223125921_add_temp_index_to_members_state.rb","name":"AddTempIndexToMembersState","type":"regular","intro_on_current_branch":false},"20220704034050":{"version":20220704034050,"path":"db/migrate/20220704034050_add_users_allowlist_to_git_rate_limits.rb","name":"AddUsersAllowlistToGitRateLimits","type":"regular","intro_on_current_branch":false},"20211224112937":{"version":20211224112937,"path":"db/migrate/20211224112937_add_packages_cleanup_package_file_worker_capacity_to_application_settings.rb","name":"AddPackagesCleanupPackageFileWorkerCapacityToApplicationSettings","type":"regular","intro_on_current_branch":false},"20220720161816":{"version":20220720161816,"path":"db/migrate/20220720161816_add_namespace_id_to_vulnerability_reads_table.rb","name":"AddNamespaceIdToVulnerabilityReadsTable","type":"regular","intro_on_current_branch":false},"20211108211434":{"version":20211108211434,"path":"db/migrate/20211108211434_remove_index_for_resource_group.rb","name":"RemoveIndexForResourceGroup","type":"regular","intro_on_current_branch":false},"20220420173247":{"version":20220420173247,"path":"db/migrate/20220420173247_add_group_inheritance_type_to_pe_authorizable.rb","name":"AddGroupInheritanceTypeToPeAuthorizable","type":"regular","intro_on_current_branch":false},"20210308125742":{"version":20210308125742,"path":"db/migrate/20210308125742_add_info_column_into_security_scans_table.rb","name":"AddInfoColumnIntoSecurityScansTable","type":"regular","intro_on_current_branch":false},"20210811120204":{"version":20210811120204,"path":"db/migrate/20210811120204_create_customer_relations_contacts.rb","name":"CreateCustomerRelationsContacts","type":"regular","intro_on_current_branch":false},"20211214110307":{"version":20211214110307,"path":"db/migrate/20211214110307_remove_temp_index_from_vulnerability_occurrences.rb","name":"RemoveTempIndexFromVulnerabilityOccurrences","type":"regular","intro_on_current_branch":false},"20220916094641":{"version":20220916094641,"path":"db/migrate/20220916094641_add_source_id_to_bulk_import_entities.rb","name":"AddSourceIdToBulkImportEntities","type":"regular","intro_on_current_branch":false},"20210325092215":{"version":20210325092215,"path":"db/migrate/20210325092215_add_not_valid_foreign_key_to_group_hooks.rb","name":"AddNotValidForeignKeyToGroupHooks","type":"regular","intro_on_current_branch":false},"20220524164122":{"version":20220524164122,"path":"db/migrate/20220524164122_limit_project_and_group_variables.rb","name":"LimitProjectAndGroupVariables","type":"regular","intro_on_current_branch":false},"20211008181451":{"version":20211008181451,"path":"db/migrate/20211008181451_add_shared_runners_duration_to_ci_namespace_monthly_usages.rb","name":"AddSharedRunnersDurationToCiNamespaceMonthlyUsages","type":"regular","intro_on_current_branch":false},"20220921174815":{"version":20220921174815,"path":"db/migrate/20220921174815_add_secure_files_metadata.rb","name":"AddSecureFilesMetadata","type":"regular","intro_on_current_branch":false},"20210430121522":{"version":20210430121522,"path":"db/migrate/20210430121522_initialize_conversion_of_ci_build_trace_sections_to_bigint.rb","name":"InitializeConversionOfCiBuildTraceSectionsToBigint","type":"regular","intro_on_current_branch":false},"20210323182846":{"version":20210323182846,"path":"db/migrate/20210323182846_add_project_status_date_index_to_merge_requests.rb","name":"AddProjectStatusDateIndexToMergeRequests","type":"regular","intro_on_current_branch":false},"20210722074220":{"version":20210722074220,"path":"db/migrate/20210722074220_remove_null_constraint_on_schedule_from_escalation_rules.rb","name":"RemoveNullConstraintOnScheduleFromEscalationRules","type":"regular","intro_on_current_branch":false},"20211112155416":{"version":20211112155416,"path":"db/migrate/20211112155416_populate_default_value_for_personal_access_tokens_prefix.rb","name":"PopulateDefaultValueForPersonalAccessTokensPrefix","type":"regular","intro_on_current_branch":false},"20210623163342":{"version":20210623163342,"path":"db/migrate/20210623163342_add_index_to_compliance_management_frameworks_pipeline_configuration.rb","name":"AddIndexToComplianceManagementFrameworksPipelineConfiguration","type":"regular","intro_on_current_branch":false},"20220314194009":{"version":20220314194009,"path":"db/migrate/20220314194009_add_approval_rule_id_to_deployment_approvals.rb","name":"AddApprovalRuleIdToDeploymentApprovals","type":"regular","intro_on_current_branch":false},"20210309181019":{"version":20210309181019,"path":"db/migrate/20210309181019_add_last_used_at_to_cluster_agent_token.rb","name":"AddLastUsedAtToClusterAgentToken","type":"regular","intro_on_current_branch":false},"20210908060951":{"version":20210908060951,"path":"db/migrate/20210908060951_add_dast_schedules_to_plan_limits.rb","name":"AddDastSchedulesToPlanLimits","type":"regular","intro_on_current_branch":false},"20210929144453":{"version":20210929144453,"path":"db/migrate/20210929144453_add_warn_about_potentially_unwanted_characters_to_project_settings.rb","name":"AddWarnAboutPotentiallyUnwantedCharactersToProjectSettings","type":"regular","intro_on_current_branch":false},"20210706213537":{"version":20210706213537,"path":"db/migrate/20210706213537_add_premium_and_ultimate_plan_limits.rb","name":"AddPremiumAndUltimatePlanLimits","type":"regular","intro_on_current_branch":false},"20210729125659":{"version":20210729125659,"path":"db/migrate/20210729125659_add_foreign_key_to_topic_on_project_topic.rb","name":"AddForeignKeyToTopicOnProjectTopic","type":"regular","intro_on_current_branch":false},"20220708184822":{"version":20220708184822,"path":"db/migrate/20220708184822_cleanup_backfill_draft_status_on_merge_requests.rb","name":"CleanupBackfillDraftStatusOnMergeRequests","type":"regular","intro_on_current_branch":false},"20220919225631":{"version":20220919225631,"path":"db/migrate/20220919225631_add_index_packages_packages_on_project_id_and_lower_version_to_packages.rb","name":"AddIndexPackagesPackagesOnProjectIdAndLowerVersionToPackages","type":"regular","intro_on_current_branch":false},"20211021134458":{"version":20211021134458,"path":"db/migrate/20211021134458_add_limits_to_sentry_settings_on_application_settings.rb","name":"AddLimitsToSentrySettingsOnApplicationSettings","type":"regular","intro_on_current_branch":false},"20220906204832":{"version":20220906204832,"path":"db/migrate/20220906204832_add_locked_to_ci_pipeline_artifacts.rb","name":"AddLockedToCiPipelineArtifacts","type":"regular","intro_on_current_branch":false},"20220706191627":{"version":20220706191627,"path":"db/migrate/20220706191627_add_encrypted_error_tracking_access_token.rb","name":"AddEncryptedErrorTrackingAccessToken","type":"regular","intro_on_current_branch":false},"20210922172156":{"version":20210922172156,"path":"db/migrate/20210922172156_drop_unique_namespaces_index_on_name_and_parent_id.rb","name":"DropUniqueNamespacesIndexOnNameAndParentId","type":"regular","intro_on_current_branch":false},"20220628121644":{"version":20220628121644,"path":"db/migrate/20220628121644_add_namespace_bans_namespace_id_foreign_key.rb","name":"AddNamespaceBansNamespaceIdForeignKey","type":"regular","intro_on_current_branch":false},"20211104012209":{"version":20211104012209,"path":"db/migrate/20211104012209_add_text_limit_to_application_settings_content_validation_endpoint_url.rb","name":"AddTextLimitToApplicationSettingsContentValidationEndpointUrl","type":"regular","intro_on_current_branch":false},"20210705124128":{"version":20210705124128,"path":"db/migrate/20210705124128_add_project_settings_previous_default_branch.rb","name":"AddProjectSettingsPreviousDefaultBranch","type":"regular","intro_on_current_branch":false},"20210422181809":{"version":20210422181809,"path":"db/migrate/20210422181809_add_project_to_timelogs.rb","name":"AddProjectToTimelogs","type":"regular","intro_on_current_branch":false},"20210420210642":{"version":20210420210642,"path":"db/migrate/20210420210642_recreate_index_for_project_deployments_with_environment_id_and_date_at.rb","name":"RecreateIndexForProjectDeploymentsWithEnvironmentIdAndDateAt","type":"regular","intro_on_current_branch":false},"20220608074738":{"version":20220608074738,"path":"db/migrate/20220608074738_add_max_repository_downloads_limit_to_application_settings.rb","name":"AddMaxRepositoryDownloadsLimitToApplicationSettings","type":"regular","intro_on_current_branch":false},"20210907182337":{"version":20210907182337,"path":"db/migrate/20210907182337_add_group_id_fkey_for_user_group_callout.rb","name":"AddGroupIdFkeyForUserGroupCallout","type":"regular","intro_on_current_branch":false},"20210423054846":{"version":20210423054846,"path":"db/migrate/20210423054846_add_ci_pipeline_id_fk_to_dast_site_profiles_pipelines.rb","name":"AddCiPipelineIdFkToDastSiteProfilesPipelines","type":"regular","intro_on_current_branch":false},"20220705145349":{"version":20220705145349,"path":"db/migrate/20220705145349_add_project_import_level_to_namespace_settings.rb","name":"AddProjectImportLevelToNamespaceSettings","type":"regular","intro_on_current_branch":false},"20220118155848":{"version":20220118155848,"path":"db/migrate/20220118155848_add_runner_token_expiration_interval_settings_to_project_settings.rb","name":"AddRunnerTokenExpirationIntervalSettingsToProjectSettings","type":"regular","intro_on_current_branch":false},"20210519154058":{"version":20210519154058,"path":"db/migrate/20210519154058_schedule_update_users_where_two_factor_auth_required_from_group.rb","name":"ScheduleUpdateUsersWhereTwoFactorAuthRequiredFromGroup","type":"regular","intro_on_current_branch":false},"20220722203840":{"version":20220722203840,"path":"db/migrate/20220722203840_update_lock_writes_function_disabled_via_setting.rb","name":"UpdateLockWritesFunctionDisabledViaSetting","type":"regular","intro_on_current_branch":false},"20220902170131":{"version":20220902170131,"path":"db/migrate/20220902170131_add_fk_constraint_to_environments_merge_request_id.rb","name":"AddFkConstraintToEnvironmentsMergeRequestId","type":"regular","intro_on_current_branch":false},"20210527194558":{"version":20210527194558,"path":"db/migrate/20210527194558_create_ci_job_token_project_scope_links.rb","name":"CreateCiJobTokenProjectScopeLinks","type":"regular","intro_on_current_branch":false},"20210527133919":{"version":20210527133919,"path":"db/migrate/20210527133919_add_diff_max_lines_to_application_settings.rb","name":"AddDiffMaxLinesToApplicationSettings","type":"regular","intro_on_current_branch":false},"20220119220620":{"version":20220119220620,"path":"db/migrate/20220119220620_add_scan_method_to_dast_site_profile.rb","name":"AddScanMethodToDastSiteProfile","type":"regular","intro_on_current_branch":false},"20210423054537":{"version":20210423054537,"path":"db/migrate/20210423054537_add_dast_site_profile_id_fk_to_dast_site_profiles_pipelines.rb","name":"AddDastSiteProfileIdFkToDastSiteProfilesPipelines","type":"regular","intro_on_current_branch":false},"20210922172056":{"version":20210922172056,"path":"db/migrate/20210922172056_add_unique_namespaces_index_on_name_parent_id_and_type.rb","name":"AddUniqueNamespacesIndexOnNameParentIdAndType","type":"regular","intro_on_current_branch":false},"20210823172643":{"version":20210823172643,"path":"db/migrate/20210823172643_create_user_group_callout.rb","name":"CreateUserGroupCallout","type":"regular","intro_on_current_branch":false},"20210824160459":{"version":20210824160459,"path":"db/migrate/20210824160459_add_notification_level_to_ci_namespace_monthly_usages.rb","name":"AddNotificationLevelToCiNamespaceMonthlyUsages","type":"regular","intro_on_current_branch":false},"20210415100159":{"version":20210415100159,"path":"db/migrate/20210415100159_initialize_conversion_of_ci_build_needs_to_bigint.rb","name":"InitializeConversionOfCiBuildNeedsToBigint","type":"regular","intro_on_current_branch":false},"20220513095545":{"version":20220513095545,"path":"db/migrate/20220513095545_create_timelog_categories.rb","name":"CreateTimelogCategories","type":"regular","intro_on_current_branch":false},"20210607154719":{"version":20210607154719,"path":"db/migrate/20210607154719_add_job_token_scope_enabled_to_ci_cd_settings.rb","name":"AddJobTokenScopeEnabledToCiCdSettings","type":"regular","intro_on_current_branch":false},"20220111095006":{"version":20220111095006,"path":"db/migrate/20220111095006_add_maintainer_note_to_ci_runners.rb","name":"AddMaintainerNoteToCiRunners","type":"regular","intro_on_current_branch":false},"20210429193106":{"version":20210429193106,"path":"db/migrate/20210429193106_add_text_limit_to_namespace_package_settings_generic_duplicate_exception_regex.rb","name":"AddTextLimitToNamespacePackageSettingsGenericDuplicateExceptionRegex","type":"regular","intro_on_current_branch":false},"20210812171704":{"version":20210812171704,"path":"db/migrate/20210812171704_create_project_ci_feature_usages.rb","name":"CreateProjectCiFeatureUsages","type":"regular","intro_on_current_branch":false},"20210825190458":{"version":20210825190458,"path":"db/migrate/20210825190458_add_user_deactivation_email_option_to_application_settings.rb","name":"AddUserDeactivationEmailOptionToApplicationSettings","type":"regular","intro_on_current_branch":false},"20210917134321":{"version":20210917134321,"path":"db/migrate/20210917134321_remove_temporary_index_for_project_topics_on_taggings.rb","name":"RemoveTemporaryIndexForProjectTopicsOnTaggings","type":"regular","intro_on_current_branch":false},"20220502150408":{"version":20220502150408,"path":"db/migrate/20220502150408_add_slack_integrations_bot_columns.rb","name":"AddSlackIntegrationsBotColumns","type":"regular","intro_on_current_branch":false},"20210707171536":{"version":20210707171536,"path":"db/migrate/20210707171536_create_vulnerability_finding_evidence_assets.rb","name":"CreateVulnerabilityFindingEvidenceAssets","type":"regular","intro_on_current_branch":false},"20220119094023":{"version":20220119094023,"path":"db/migrate/20220119094023_add_unique_index_to_aed_verification_token.rb","name":"AddUniqueIndexToAedVerificationToken","type":"regular","intro_on_current_branch":false},"20211105010101":{"version":20211105010101,"path":"db/migrate/20211105010101_add_archived_column_to_deployments.rb","name":"AddArchivedColumnToDeployments","type":"regular","intro_on_current_branch":false},"20210902184334":{"version":20210902184334,"path":"db/migrate/20210902184334_add_expire_access_tokens_to_doorkeeper_application.rb","name":"AddExpireAccessTokensToDoorkeeperApplication","type":"regular","intro_on_current_branch":false},"20220120160625":{"version":20220120160625,"path":"db/migrate/20220120160625_remove_temp_index_on_id_from_vulnerability_occurrences.rb","name":"RemoveTempIndexOnIdFromVulnerabilityOccurrences","type":"regular","intro_on_current_branch":false},"20210729192148":{"version":20210729192148,"path":"db/migrate/20210729192148_remove_foreign_keys_from_ci_test_cases.rb","name":"RemoveForeignKeysFromCiTestCases","type":"regular","intro_on_current_branch":false},"20211122215001":{"version":20211122215001,"path":"db/migrate/20211122215001_add_policy_idx_to_approval_merge_request_rule.rb","name":"AddPolicyIdxToApprovalMergeRequestRule","type":"regular","intro_on_current_branch":false},"20220421144758":{"version":20220421144758,"path":"db/migrate/20220421144758_change_dotenv_plan_limits_for_old_plans.rb","name":"ChangeDotenvPlanLimitsForOldPlans","type":"regular","intro_on_current_branch":false},"20211021125908":{"version":20211021125908,"path":"db/migrate/20211021125908_add_sentry_settings_to_application_settings.rb","name":"AddSentrySettingsToApplicationSettings","type":"regular","intro_on_current_branch":false},"20220901092853":{"version":20220901092853,"path":"db/migrate/20220901092853_update_can_create_group_application_setting.rb","name":"UpdateCanCreateGroupApplicationSetting","type":"regular","intro_on_current_branch":false},"20210603140302":{"version":20210603140302,"path":"db/migrate/20210603140302_add_pronouns_to_user_details.rb","name":"AddPronounsToUserDetails","type":"regular","intro_on_current_branch":false},"20210722150102":{"version":20210722150102,"path":"db/migrate/20210722150102_operations_feature_flags_correct_flexible_rollout_values.rb","name":"OperationsFeatureFlagsCorrectFlexibleRolloutValues","type":"regular","intro_on_current_branch":false},"20220602130306":{"version":20220602130306,"path":"db/migrate/20220602130306_add_namespace_type_index.rb","name":"AddNamespaceTypeIndex","type":"regular","intro_on_current_branch":false},"20220513114850":{"version":20220513114850,"path":"db/migrate/20220513114850_add_text_limit_to_jira_connect_application_id_application_setting.rb","name":"AddTextLimitToJiraConnectApplicationIdApplicationSetting","type":"regular","intro_on_current_branch":false},"20210805085706":{"version":20210805085706,"path":"db/migrate/20210805085706_add_rule_index_to_security_orchestration_policy_rule_schedules.rb","name":"AddRuleIndexToSecurityOrchestrationPolicyRuleSchedules","type":"regular","intro_on_current_branch":false},"20210921191010":{"version":20210921191010,"path":"db/migrate/20210921191010_add_report_type_index_into_approval_project_rules.rb","name":"AddReportTypeIndexIntoApprovalProjectRules","type":"regular","intro_on_current_branch":false},"20220314184209":{"version":20220314184209,"path":"db/migrate/20220314184209_add_group_fk_to_protected_environment_approval_rules.rb","name":"AddGroupFkToProtectedEnvironmentApprovalRules","type":"regular","intro_on_current_branch":false},"20220318141037":{"version":20220318141037,"path":"db/migrate/20220318141037_add_pages_onboarding_state.rb","name":"AddPagesOnboardingState","type":"regular","intro_on_current_branch":false},"20210721134707":{"version":20210721134707,"path":"db/migrate/20210721134707_add_text_limit_to_integrations_type_new.rb","name":"AddTextLimitToIntegrationsTypeNew","type":"regular","intro_on_current_branch":false},"20210604082145":{"version":20210604082145,"path":"db/migrate/20210604082145_create_external_status_checks_table.rb","name":"CreateExternalStatusChecksTable","type":"regular","intro_on_current_branch":false},"20211126142200":{"version":20211126142200,"path":"db/migrate/20211126142200_add_encrypted_static_object_token.rb","name":"AddEncryptedStaticObjectToken","type":"regular","intro_on_current_branch":false},"20220811092253":{"version":20220811092253,"path":"db/migrate/20220811092253_add_ml_experiments_reference_to_project.rb","name":"AddMlExperimentsReferenceToProject","type":"regular","intro_on_current_branch":false},"20220524141800":{"version":20220524141800,"path":"db/migrate/20220524141800_create_audit_events_streaming_headers.rb","name":"CreateAuditEventsStreamingHeaders","type":"regular","intro_on_current_branch":false},"20210401175134":{"version":20210401175134,"path":"db/migrate/20210401175134_add_before_expiry_notification_delivered_to_keys.rb","name":"AddBeforeExpiryNotificationDeliveredToKeys","type":"regular","intro_on_current_branch":false},"20210420221106":{"version":20210420221106,"path":"db/migrate/20210420221106_update_merge_requests_iteration_foreign_key.rb","name":"UpdateMergeRequestsIterationForeignKey","type":"regular","intro_on_current_branch":false},"20210412172030":{"version":20210412172030,"path":"db/migrate/20210412172030_add_configured_at_to_security_orchestration_policy.rb","name":"AddConfiguredAtToSecurityOrchestrationPolicy","type":"regular","intro_on_current_branch":false},"20210513093418":{"version":20210513093418,"path":"db/migrate/20210513093418_add_draft_column_to_merge_requests.rb","name":"AddDraftColumnToMergeRequests","type":"regular","intro_on_current_branch":false},"20210909184349":{"version":20210909184349,"path":"db/migrate/20210909184349_add_index_package_id_id_on_package_files.rb","name":"AddIndexPackageIdIdOnPackageFiles","type":"regular","intro_on_current_branch":false},"20210621090030":{"version":20210621090030,"path":"db/migrate/20210621090030_add_text_limit_to_timelogs_summary.rb","name":"AddTextLimitToTimelogsSummary","type":"regular","intro_on_current_branch":false},"20220712025712":{"version":20220712025712,"path":"db/migrate/20220712025712_update_insert_or_update_vulnerability_reads_function.rb","name":"UpdateInsertOrUpdateVulnerabilityReadsFunction","type":"regular","intro_on_current_branch":false},"20220511144946":{"version":20220511144946,"path":"db/migrate/20220511144946_add_work_item_parent_child_table.rb","name":"AddWorkItemParentChildTable","type":"regular","intro_on_current_branch":false},"20210721125525":{"version":20210721125525,"path":"db/migrate/20210721125525_add_signed_file_to_packages_debian_project_distributions.rb","name":"AddSignedFileToPackagesDebianProjectDistributions","type":"regular","intro_on_current_branch":false},"20210308175225":{"version":20210308175225,"path":"db/migrate/20210308175225_add_lock_delayed_project_removal_to_namespace_settings.rb","name":"AddLockDelayedProjectRemovalToNamespaceSettings","type":"regular","intro_on_current_branch":false},"20220201205300":{"version":20220201205300,"path":"db/migrate/20220201205300_remove_index_for_vulnerability_occurrences.rb","name":"RemoveIndexForVulnerabilityOccurrences","type":"regular","intro_on_current_branch":false},"20220703182234":{"version":20220703182234,"path":"db/migrate/20220703182234_add_findings_partition_number_to_security_scans.rb","name":"AddFindingsPartitionNumberToSecurityScans","type":"regular","intro_on_current_branch":false},"20211115132613":{"version":20211115132613,"path":"db/migrate/20211115132613_create_incident_management_timeline_events.rb","name":"CreateIncidentManagementTimelineEvents","type":"regular","intro_on_current_branch":false},"20211108204736":{"version":20211108204736,"path":"db/migrate/20211108204736_add_policy_idx_to_approval_project_rule.rb","name":"AddPolicyIdxToApprovalProjectRule","type":"regular","intro_on_current_branch":false},"20220621202616":{"version":20220621202616,"path":"db/migrate/20220621202616_add_partial_index_on_oauth_access_tokens_revoked_at.rb","name":"AddPartialIndexOnOauthAccessTokensRevokedAt","type":"regular","intro_on_current_branch":false},"20210923151641":{"version":20210923151641,"path":"db/migrate/20210923151641_change_default_for_integrated_error_tracking.rb","name":"ChangeDefaultForIntegratedErrorTracking","type":"regular","intro_on_current_branch":false},"20210322063407":{"version":20210322063407,"path":"db/migrate/20210322063407_add_dast_profile_id_fk_to_dast_profiles_pipelines.rb","name":"AddDastProfileIdFkToDastProfilesPipelines","type":"regular","intro_on_current_branch":false},"20220818132108":{"version":20220818132108,"path":"db/migrate/20220818132108_add_deleted_on_to_ml_experiments.rb","name":"AddDeletedOnToMlExperiments","type":"regular","intro_on_current_branch":false},"20211021124715":{"version":20211021124715,"path":"db/migrate/20211021124715_add_text_limit_to_epics_color.rb","name":"AddTextLimitToEpicsColor","type":"regular","intro_on_current_branch":false},"20210420012444":{"version":20210420012444,"path":"db/migrate/20210420012444_change_web_hook_events_default.rb","name":"ChangeWebHookEventsDefault","type":"regular","intro_on_current_branch":false},"20210421021510":{"version":20210421021510,"path":"db/migrate/20210421021510_add_deactivate_dormant_users_to_application_settings.rb","name":"AddDeactivateDormantUsersToApplicationSettings","type":"regular","intro_on_current_branch":false},"20210817172214":{"version":20210817172214,"path":"db/migrate/20210817172214_add_yaml_limits_application_setting.rb","name":"AddYamlLimitsApplicationSetting","type":"regular","intro_on_current_branch":false},"20220603125200":{"version":20220603125200,"path":"db/migrate/20220603125200_add_show_diff_preview_in_email_to_namespace_settings.rb","name":"AddShowDiffPreviewInEmailToNamespaceSettings","type":"regular","intro_on_current_branch":false},"20220818125703":{"version":20220818125703,"path":"db/migrate/20220818125703_add_jitsu_tracking_columns_to_application_settings_text_limits.rb","name":"AddJitsuTrackingColumnsToApplicationSettingsTextLimits","type":"regular","intro_on_current_branch":false},"20220616183240":{"version":20220616183240,"path":"db/migrate/20220616183240_add_sbom_component_versions_foreign_key_to_sbom_occurrences.rb","name":"AddSbomComponentVersionsForeignKeyToSbomOccurrences","type":"regular","intro_on_current_branch":false},"20210503105022":{"version":20210503105022,"path":"db/migrate/20210503105022_create_project_value_streams.rb","name":"CreateProjectValueStreams","type":"regular","intro_on_current_branch":false},"20210819120243":{"version":20210819120243,"path":"db/migrate/20210819120243_add_throttle_files_api_columns.rb","name":"AddThrottleFilesApiColumns","type":"regular","intro_on_current_branch":false},"20220321234317":{"version":20220321234317,"path":"db/migrate/20220321234317_remove_all_issuable_escalation_statuses.rb","name":"RemoveAllIssuableEscalationStatuses","type":"regular","intro_on_current_branch":false},"20210427125400":{"version":20210427125400,"path":"db/migrate/20210427125400_add_spamcheck_api_key_to_application_setting.rb","name":"AddSpamcheckApiKeyToApplicationSetting","type":"regular","intro_on_current_branch":false},"20210907182359":{"version":20210907182359,"path":"db/migrate/20210907182359_add_user_id_fkey_for_user_group_callout.rb","name":"AddUserIdFkeyForUserGroupCallout","type":"regular","intro_on_current_branch":false},"20220318120802":{"version":20220318120802,"path":"db/migrate/20220318120802_add_target_platforms_to_project_setting.rb","name":"AddTargetPlatformsToProjectSetting","type":"regular","intro_on_current_branch":false},"20210804150320":{"version":20210804150320,"path":"db/migrate/20210804150320_create_base_work_item_types.rb","name":"CreateBaseWorkItemTypes","type":"regular","intro_on_current_branch":false},"20210818115613":{"version":20210818115613,"path":"db/migrate/20210818115613_add_index_project_id_on_dast_profile_schedule.rb","name":"AddIndexProjectIdOnDastProfileSchedule","type":"regular","intro_on_current_branch":false},"20210915000453":{"version":20210915000453,"path":"db/migrate/20210915000453_add_index_on_clusters_integration_prometheus_enabled.rb","name":"AddIndexOnClustersIntegrationPrometheusEnabled","type":"regular","intro_on_current_branch":false},"20210708063032":{"version":20210708063032,"path":"db/migrate/20210708063032_add_failed_count_to_merge_request_cleanup_schedules.rb","name":"AddFailedCountToMergeRequestCleanupSchedules","type":"regular","intro_on_current_branch":false},"20220913084123":{"version":20220913084123,"path":"db/migrate/20220913084123_add_timestamp_to_ml_candidate_metrics.rb","name":"AddTimestampToMlCandidateMetrics","type":"regular","intro_on_current_branch":false},"20210326190903":{"version":20210326190903,"path":"db/migrate/20210326190903_create_vulnerability_finding_evidences.rb","name":"CreateVulnerabilityFindingEvidences","type":"regular","intro_on_current_branch":false},"20220407135820":{"version":20220407135820,"path":"db/migrate/20220407135820_add_epics_relative_position.rb","name":"AddEpicsRelativePosition","type":"regular","intro_on_current_branch":false},"20210325150837":{"version":20210325150837,"path":"db/migrate/20210325150837_add_verification_state_to_ci_pipeline_artifact.rb","name":"AddVerificationStateToCiPipelineArtifact","type":"regular","intro_on_current_branch":false},"20210504135823":{"version":20210504135823,"path":"db/migrate/20210504135823_add_floc_application_settings.rb","name":"AddFlocApplicationSettings","type":"regular","intro_on_current_branch":false},"20210325152011":{"version":20210325152011,"path":"db/migrate/20210325152011_add_verification_indexes_to_ci_pipeline_artifacts.rb","name":"AddVerificationIndexesToCiPipelineArtifacts","type":"regular","intro_on_current_branch":false},"20210311022012":{"version":20210311022012,"path":"db/migrate/20210311022012_add_text_limits_to_dast_site_profiles.rb","name":"AddTextLimitsToDastSiteProfiles","type":"regular","intro_on_current_branch":false},"20220314094841":{"version":20220314094841,"path":"db/migrate/20220314094841_add_package_registry_access_level_into_project_features.rb","name":"AddPackageRegistryAccessLevelIntoProjectFeatures","type":"regular","intro_on_current_branch":false},"20210713211008":{"version":20210713211008,"path":"db/migrate/20210713211008_create_banned_users.rb","name":"CreateBannedUsers","type":"regular","intro_on_current_branch":false},"20220119141407":{"version":20220119141407,"path":"db/migrate/20220119141407_add_dependency_proxy_size_to_namespace_statistics.rb","name":"AddDependencyProxySizeToNamespaceStatistics","type":"regular","intro_on_current_branch":false},"20220314194149":{"version":20220314194149,"path":"db/migrate/20220314194149_add_project_ci_secure_files_to_plan_limits.rb","name":"AddProjectCiSecureFilesToPlanLimits","type":"regular","intro_on_current_branch":false},"20210920104446":{"version":20210920104446,"path":"db/migrate/20210920104446_add_text_limit_to_topics_description_and_avatar.rb","name":"AddTextLimitToTopicsDescriptionAndAvatar","type":"regular","intro_on_current_branch":false},"20220523162734":{"version":20220523162734,"path":"db/migrate/20220523162734_add_vulnerability_reads_casted_cluster_agent_column.rb","name":"AddVulnerabilityReadsCastedClusterAgentColumn","type":"regular","intro_on_current_branch":false},"20210701111627":{"version":20210701111627,"path":"db/migrate/20210701111627_add_upvotes_count_to_issues.rb","name":"AddUpvotesCountToIssues","type":"regular","intro_on_current_branch":false},"20220726154015":{"version":20220726154015,"path":"db/migrate/20220726154015_add_component_foreign_key_to_sbom_occurrences.rb","name":"AddComponentForeignKeyToSbomOccurrences","type":"regular","intro_on_current_branch":false},"20220605170009":{"version":20220605170009,"path":"db/migrate/20220605170009_add_url_vars_to_web_hook.rb","name":"AddUrlVarsToWebHook","type":"regular","intro_on_current_branch":false},"20220607095219":{"version":20220607095219,"path":"db/migrate/20220607095219_drop_ci_pipelines_config_pipeline_id_sequence.rb","name":"DropCiPipelinesConfigPipelineIdSequence","type":"regular","intro_on_current_branch":false},"20210517221612":{"version":20210517221612,"path":"db/migrate/20210517221612_add_default_value_to_merge_requests_author_approval_on_projects.rb","name":"AddDefaultValueToMergeRequestsAuthorApprovalOnProjects","type":"regular","intro_on_current_branch":false},"20210325113129":{"version":20210325113129,"path":"db/migrate/20210325113129_validate_foreign_key_on_service_hooks.rb","name":"ValidateForeignKeyOnServiceHooks","type":"regular","intro_on_current_branch":false},"20210713144637":{"version":20210713144637,"path":"db/migrate/20210713144637_add_vulnerabilities_created_at_index.rb","name":"AddVulnerabilitiesCreatedAtIndex","type":"regular","intro_on_current_branch":false},"20220726171440":{"version":20220726171440,"path":"db/migrate/20220726171440_create_ghost_user_migrations.rb","name":"CreateGhostUserMigrations","type":"regular","intro_on_current_branch":false},"20220613054349":{"version":20220613054349,"path":"db/migrate/20220613054349_add_unique_project_download_limit_settings_to_namespace_settings.rb","name":"AddUniqueProjectDownloadLimitSettingsToNamespaceSettings","type":"regular","intro_on_current_branch":false},"20210429032320":{"version":20210429032320,"path":"db/migrate/20210429032320_add_escalation_rules.rb","name":"AddEscalationRules","type":"regular","intro_on_current_branch":false},"20210401134455":{"version":20210401134455,"path":"db/migrate/20210401134455_remove_index_mirror_data_on_next_execution_and_retry_count.rb","name":"RemoveIndexMirrorDataOnNextExecutionAndRetryCount","type":"regular","intro_on_current_branch":false},"20210609193101":{"version":20210609193101,"path":"db/migrate/20210609193101_add_status_check_foreign_key_to_protected_branch_id.rb","name":"AddStatusCheckForeignKeyToProtectedBranchId","type":"regular","intro_on_current_branch":false},"20210826120834":{"version":20210826120834,"path":"db/migrate/20210826120834_add_locked_to_ci_job_artifacts.rb","name":"AddLockedToCiJobArtifacts","type":"regular","intro_on_current_branch":false},"20220902065317":{"version":20220902065317,"path":"db/migrate/20220902065317_add_partition_id_to_ci_builds.rb","name":"AddPartitionIdToCiBuilds","type":"regular","intro_on_current_branch":false},"20210429024843":{"version":20210429024843,"path":"db/migrate/20210429024843_add_escalation_policies.rb","name":"AddEscalationPolicies","type":"regular","intro_on_current_branch":false},"20210415142700":{"version":20210415142700,"path":"db/migrate/20210415142700_add_url_limit_to_pipeline_validation.rb","name":"AddUrlLimitToPipelineValidation","type":"regular","intro_on_current_branch":false},"20210719145532":{"version":20210719145532,"path":"db/migrate/20210719145532_add_foreign_keys_view.rb","name":"AddForeignKeysView","type":"regular","intro_on_current_branch":false},"20210623074226":{"version":20210623074226,"path":"db/migrate/20210623074226_add_usage_ping_features_enabled_to_application_settings.rb","name":"AddUsagePingFeaturesEnabledToApplicationSettings","type":"regular","intro_on_current_branch":false},"20220203133652":{"version":20220203133652,"path":"db/migrate/20220203133652_add_legacy_open_source_license_available_to_project_settings.rb","name":"AddLegacyOpenSourceLicenseAvailableToProjectSettings","type":"regular","intro_on_current_branch":false},"20220616182001":{"version":20220616182001,"path":"db/migrate/20220616182001_create_sbom_components.rb","name":"CreateSbomComponents","type":"regular","intro_on_current_branch":false},"20210824055322":{"version":20210824055322,"path":"db/migrate/20210824055322_add_project_namespace_id_to_project.rb","name":"AddProjectNamespaceIdToProject","type":"regular","intro_on_current_branch":false},"20210521073920":{"version":20210521073920,"path":"db/migrate/20210521073920_drop_devops_adoption_namespace_uniqueness.rb","name":"DropDevopsAdoptionNamespaceUniqueness","type":"regular","intro_on_current_branch":false},"20210729081739":{"version":20210729081739,"path":"db/migrate/20210729081739_create_project_topics.rb","name":"CreateProjectTopics","type":"regular","intro_on_current_branch":false},"20210621084632":{"version":20210621084632,"path":"db/migrate/20210621084632_add_summary_to_timelogs.rb","name":"AddSummaryToTimelogs","type":"regular","intro_on_current_branch":false},"20220616183309":{"version":20220616183309,"path":"db/migrate/20220616183309_add_sbom_source_foreign_key_to_sbom_occurrences.rb","name":"AddSbomSourceForeignKeyToSbomOccurrences","type":"regular","intro_on_current_branch":false},"20210623133635":{"version":20210623133635,"path":"db/migrate/20210623133635_create_error_tracking_errors.rb","name":"CreateErrorTrackingErrors","type":"regular","intro_on_current_branch":false},"20210519132109":{"version":20210519132109,"path":"db/migrate/20210519132109_initialize_conversion_of_ci_builds_metadata_to_bigint.rb","name":"InitializeConversionOfCiBuildsMetadataToBigint","type":"regular","intro_on_current_branch":false},"20220412141020":{"version":20220412141020,"path":"db/migrate/20220412141020_drop_unique_fingerprint_md5_index_from_group_deploy_key.rb","name":"DropUniqueFingerprintMd5IndexFromGroupDeployKey","type":"regular","intro_on_current_branch":false},"20220808194857":{"version":20220808194857,"path":"db/migrate/20220808194857_remove_description_html_limit.rb","name":"RemoveDescriptionHtmlLimit","type":"regular","intro_on_current_branch":false},"20220120033115":{"version":20220120033115,"path":"db/migrate/20220120033115_create_alert_management_alert_metric_images.rb","name":"CreateAlertManagementAlertMetricImages","type":"regular","intro_on_current_branch":false},"20210409084242":{"version":20210409084242,"path":"db/migrate/20210409084242_create_index_on_notes_for_cherry_picked_merge_requests.rb","name":"CreateIndexOnNotesForCherryPickedMergeRequests","type":"regular","intro_on_current_branch":false},"20210823213417":{"version":20210823213417,"path":"db/migrate/20210823213417_create_dependency_proxy_image_ttl_group_policies.rb","name":"CreateDependencyProxyImageTtlGroupPolicies","type":"regular","intro_on_current_branch":false},"20210713070842":{"version":20210713070842,"path":"db/migrate/20210713070842_update_merge_request_cleanup_schedules_scheduled_at_index.rb","name":"UpdateMergeRequestCleanupSchedulesScheduledAtIndex","type":"regular","intro_on_current_branch":false},"20210421081724":{"version":20210421081724,"path":"db/migrate/20210421081724_add_codeowners_devops_adoption_snapshot.rb","name":"AddCodeownersDevopsAdoptionSnapshot","type":"regular","intro_on_current_branch":false},"20210420012909":{"version":20210420012909,"path":"db/migrate/20210420012909_index_cluster_agent_tokens_on_last_used_at.rb","name":"IndexClusterAgentTokensOnLastUsedAt","type":"regular","intro_on_current_branch":false},"20211028212259":{"version":20211028212259,"path":"db/migrate/20211028212259_add_default_to_personal_access_tokens_prefix.rb","name":"AddDefaultToPersonalAccessTokensPrefix","type":"regular","intro_on_current_branch":false},"20220818125332":{"version":20220818125332,"path":"db/migrate/20220818125332_add_jitsu_tracking_columns_to_application_settings.rb","name":"AddJitsuTrackingColumnsToApplicationSettings","type":"regular","intro_on_current_branch":false},"20220712031923":{"version":20220712031923,"path":"db/migrate/20220712031923_create_vulnerability_reads_for_an_existing_vulnerability_record.rb","name":"CreateVulnerabilityReadsForAnExistingVulnerabilityRecord","type":"regular","intro_on_current_branch":false},"20220314184109":{"version":20220314184109,"path":"db/migrate/20220314184109_add_user_fk_to_protected_environment_approval_rules.rb","name":"AddUserFkToProtectedEnvironmentApprovalRules","type":"regular","intro_on_current_branch":false},"20210714043818":{"version":20210714043818,"path":"db/migrate/20210714043818_add_index_for_label_applied_to_issuable_sla.rb","name":"AddIndexForLabelAppliedToIssuableSla","type":"regular","intro_on_current_branch":false},"20220506154054":{"version":20220506154054,"path":"db/migrate/20220506154054_create_sync_namespace_details_trigger.rb","name":"CreateSyncNamespaceDetailsTrigger","type":"regular","intro_on_current_branch":false},"20210527130524":{"version":20210527130524,"path":"db/migrate/20210527130524_rename_experiment_subjects_group_id_to_namespace_id.rb","name":"RenameExperimentSubjectsGroupIdToNamespaceId","type":"regular","intro_on_current_branch":false},"20210331180118":{"version":20210331180118,"path":"db/migrate/20210331180118_remove_deprecated_index_from_award_emoji.rb","name":"RemoveDeprecatedIndexFromAwardEmoji","type":"regular","intro_on_current_branch":false},"20220106112043":{"version":20220106112043,"path":"db/migrate/20220106112043_add_update_vulnerability_reads_trigger.rb","name":"AddUpdateVulnerabilityReadsTrigger","type":"regular","intro_on_current_branch":false},"20210503131747":{"version":20210503131747,"path":"db/migrate/20210503131747_add_web_hook_calls_to_plan_limits.rb","name":"AddWebHookCallsToPlanLimits","type":"regular","intro_on_current_branch":false},"20210806152104":{"version":20210806152104,"path":"db/migrate/20210806152104_add_pypi_package_requests_forwarding_to_application_settings.rb","name":"AddPypiPackageRequestsForwardingToApplicationSettings","type":"regular","intro_on_current_branch":false},"20220628110214":{"version":20220628110214,"path":"db/migrate/20220628110214_add_namespace_id_column_to_issues_table.rb","name":"AddNamespaceIdColumnToIssuesTable","type":"regular","intro_on_current_branch":false},"20220901212027":{"version":20220901212027,"path":"db/migrate/20220901212027_add_merge_request_id_to_environments.rb","name":"AddMergeRequestIdToEnvironments","type":"regular","intro_on_current_branch":false},"20220824194103":{"version":20220824194103,"path":"db/migrate/20220824194103_remove_existing_work_item_type_backfill_migrations.rb","name":"RemoveExistingWorkItemTypeBackfillMigrations","type":"regular","intro_on_current_branch":false},"20220112115413":{"version":20220112115413,"path":"db/migrate/20220112115413_add_requires_verification_to_user_details.rb","name":"AddRequiresVerificationToUserDetails","type":"regular","intro_on_current_branch":false},"20211129151155":{"version":20211129151155,"path":"db/migrate/20211129151155_add_migrated_to_new_structure_column_to_vulnerability_occurrences.rb","name":"AddMigratedToNewStructureColumnToVulnerabilityOccurrences","type":"regular","intro_on_current_branch":false},"20220502152633":{"version":20220502152633,"path":"db/migrate/20220502152633_add_slack_integrations_bot_user_id_text_limit.rb","name":"AddSlackIntegrationsBotUserIdTextLimit","type":"regular","intro_on_current_branch":false},"20220619182308":{"version":20220619182308,"path":"db/migrate/20220619182308_create_project_relation_exports.rb","name":"CreateProjectRelationExports","type":"regular","intro_on_current_branch":false},"20211213154704":{"version":20211213154704,"path":"db/migrate/20211213154704_add_status_index_to_packages_package_files.rb","name":"AddStatusIndexToPackagesPackageFiles","type":"regular","intro_on_current_branch":false},"20220316095126":{"version":20220316095126,"path":"db/migrate/20220316095126_add_creator_id_to_deploy_tokens.rb","name":"AddCreatorIdToDeployTokens","type":"regular","intro_on_current_branch":false},"20211011140930":{"version":20211011140930,"path":"db/migrate/20211011140930_create_ci_namespace_mirrors.rb","name":"CreateCiNamespaceMirrors","type":"regular","intro_on_current_branch":false},"20210309160106":{"version":20210309160106,"path":"db/migrate/20210309160106_add_admin_mode_to_application_setting.rb","name":"AddAdminModeToApplicationSetting","type":"regular","intro_on_current_branch":false},"20220119144253":{"version":20220119144253,"path":"db/migrate/20220119144253_add_dependency_proxy_size_to_namespace_root_storage_statistics.rb","name":"AddDependencyProxySizeToNamespaceRootStorageStatistics","type":"regular","intro_on_current_branch":false},"20210510191551":{"version":20210510191551,"path":"db/migrate/20210510191551_add_body_to_findings_evidences_request.rb","name":"AddBodyToFindingsEvidencesRequest","type":"regular","intro_on_current_branch":false},"20211203161149":{"version":20211203161149,"path":"db/migrate/20211203161149_add_index_to_merge_request_reviewers_updated_state_by_user_id.rb","name":"AddIndexToMergeRequestReviewersUpdatedStateByUserId","type":"regular","intro_on_current_branch":false},"20210708202548":{"version":20210708202548,"path":"db/migrate/20210708202548_add_scanners_column_to_approval_project_rules.rb","name":"AddScannersColumnToApprovalProjectRules","type":"regular","intro_on_current_branch":false},"20220520144821":{"version":20220520144821,"path":"db/migrate/20220520144821_add_registry_migration_pre_import_tags_rate_to_application_settings.rb","name":"AddRegistryMigrationPreImportTagsRateToApplicationSettings","type":"regular","intro_on_current_branch":false},"20210623123722":{"version":20210623123722,"path":"db/migrate/20210623123722_add_present_on_default_branch_to_vulnerabilities.rb","name":"AddPresentOnDefaultBranchToVulnerabilities","type":"regular","intro_on_current_branch":false},"20210713135152":{"version":20210713135152,"path":"db/migrate/20210713135152_add_devops_adoption_vulnerability_management_used_count.rb","name":"AddDevopsAdoptionVulnerabilityManagementUsedCount","type":"regular","intro_on_current_branch":false},"20210520102039":{"version":20210520102039,"path":"db/migrate/20210520102039_group_protected_environments_add_column.rb","name":"GroupProtectedEnvironmentsAddColumn","type":"regular","intro_on_current_branch":false},"20211109100050":{"version":20211109100050,"path":"db/migrate/20211109100050_add_consume_after_to_loose_fk_deleted_records.rb","name":"AddConsumeAfterToLooseFkDeletedRecords","type":"regular","intro_on_current_branch":false},"20220406121831":{"version":20220406121831,"path":"db/migrate/20220406121831_add_index_on_status_for_batched_background_migrations.rb","name":"AddIndexOnStatusForBatchedBackgroundMigrations","type":"regular","intro_on_current_branch":false},"20210825104558":{"version":20210825104558,"path":"db/migrate/20210825104558_change_description_limit_error_tracking_event.rb","name":"ChangeDescriptionLimitErrorTrackingEvent","type":"regular","intro_on_current_branch":false},"20210910192921":{"version":20210910192921,"path":"db/migrate/20210910192921_add_report_type_into_approval_project_rules.rb","name":"AddReportTypeIntoApprovalProjectRules","type":"regular","intro_on_current_branch":false},"20210723173132":{"version":20210723173132,"path":"db/migrate/20210723173132_create_index_on_environments_auto_delete_at.rb","name":"CreateIndexOnEnvironmentsAutoDeleteAt","type":"regular","intro_on_current_branch":false},"20210423171304":{"version":20210423171304,"path":"db/migrate/20210423171304_re_order_fk_source_project_id_in_merge_requests.rb","name":"ReOrderFkSourceProjectIdInMergeRequests","type":"regular","intro_on_current_branch":false},"20211115142803":{"version":20211115142803,"path":"db/migrate/20211115142803_add_foreign_key_to_incident_management_timeline_events_on_project.rb","name":"AddForeignKeyToIncidentManagementTimelineEventsOnProject","type":"regular","intro_on_current_branch":false},"20220420192542":{"version":20220420192542,"path":"db/migrate/20220420192542_add_id_for_cleanup_index_packages_package_files.rb","name":"AddIdForCleanupIndexPackagesPackageFiles","type":"regular","intro_on_current_branch":false},"20220616183310":{"version":20220616183310,"path":"db/migrate/20220616183310_add_project_foreign_key_to_sbom_occurrences.rb","name":"AddProjectForeignKeyToSbomOccurrences","type":"regular","intro_on_current_branch":false},"20210908140437":{"version":20210908140437,"path":"db/migrate/20210908140437_add_sidekiq_limits_to_application_settings.rb","name":"AddSidekiqLimitsToApplicationSettings","type":"regular","intro_on_current_branch":false},"20210414130526":{"version":20210414130526,"path":"db/migrate/20210414130526_add_foreign_key_to_bulk_import_exports_on_group.rb","name":"AddForeignKeyToBulkImportExportsOnGroup","type":"regular","intro_on_current_branch":false},"20220304062107":{"version":20220304062107,"path":"db/migrate/20220304062107_remove_unique_index_for_sprints_on_project_id_and_title.rb","name":"RemoveUniqueIndexForSprintsOnProjectIdAndTitle","type":"regular","intro_on_current_branch":false},"20211005063723":{"version":20211005063723,"path":"db/migrate/20211005063723_add_foreign_key_to_corpuses_on_package.rb","name":"AddForeignKeyToCorpusesOnPackage","type":"regular","intro_on_current_branch":false},"20210419090542":{"version":20210419090542,"path":"db/migrate/20210419090542_remove_debian_project_architectures_distribution_id_index.rb","name":"RemoveDebianProjectArchitecturesDistributionIdIndex","type":"regular","intro_on_current_branch":false},"20210630222522":{"version":20210630222522,"path":"db/migrate/20210630222522_add_customers_dot_jwt_signing_key_to_application_settings.rb","name":"AddCustomersDotJwtSigningKeyToApplicationSettings","type":"regular","intro_on_current_branch":false},"20210707163659":{"version":20210707163659,"path":"db/migrate/20210707163659_add_vulnerability_events_to_integrations.rb","name":"AddVulnerabilityEventsToIntegrations","type":"regular","intro_on_current_branch":false},"20220331174459":{"version":20220331174459,"path":"db/migrate/20220331174459_add_text_limit_to_submit_field_dast_site_profiles.rb","name":"AddTextLimitToSubmitFieldDastSiteProfiles","type":"regular","intro_on_current_branch":false},"20210709221051":{"version":20210709221051,"path":"db/migrate/20210709221051_create_work_item_types.rb","name":"CreateWorkItemTypes","type":"regular","intro_on_current_branch":false},"20211122103051":{"version":20211122103051,"path":"db/migrate/20211122103051_add_line_code_to_draft_notes.rb","name":"AddLineCodeToDraftNotes","type":"regular","intro_on_current_branch":false},"20210816161107":{"version":20210816161107,"path":"db/migrate/20210816161107_remove_index_containing_faulty_regex.rb","name":"RemoveIndexContainingFaultyRegex","type":"regular","intro_on_current_branch":false},"20220525124125":{"version":20220525124125,"path":"db/migrate/20220525124125_add_raw_to_ci_variables.rb","name":"AddRawToCiVariables","type":"regular","intro_on_current_branch":false},"20220624081524":{"version":20220624081524,"path":"db/migrate/20220624081524_add_ci_runner_versions_table.rb","name":"AddCiRunnerVersionsTable","type":"regular","intro_on_current_branch":false},"20210414095944":{"version":20210414095944,"path":"db/migrate/20210414095944_add_index_services_on_project_and_type_where_inherit_null.rb","name":"AddIndexServicesOnProjectAndTypeWhereInheritNull","type":"regular","intro_on_current_branch":false},"20211124132319":{"version":20211124132319,"path":"db/migrate/20211124132319_add_encrypted_static_objects_external_storage_auth_token.rb","name":"AddEncryptedStaticObjectsExternalStorageAuthToken","type":"regular","intro_on_current_branch":false},"20210323131543":{"version":20210323131543,"path":"db/migrate/20210323131543_add_external_approval_rule_foreign_key_to_status_check_responses.rb","name":"AddExternalApprovalRuleForeignKeyToStatusCheckResponses","type":"regular","intro_on_current_branch":false},"20210525085325":{"version":20210525085325,"path":"db/migrate/20210525085325_backfill_deployments_for_bigint_conversion.rb","name":"BackfillDeploymentsForBigintConversion","type":"regular","intro_on_current_branch":false},"20210706151154":{"version":20210706151154,"path":"db/migrate/20210706151154_add_remaining_ci_minutes_to_ci_pending_build.rb","name":"AddRemainingCiMinutesToCiPendingBuild","type":"regular","intro_on_current_branch":false},"20211115142847":{"version":20211115142847,"path":"db/migrate/20211115142847_add_foreign_key_to_incident_management_timeline_events_on_user.rb","name":"AddForeignKeyToIncidentManagementTimelineEventsOnUser","type":"regular","intro_on_current_branch":false},"20210707095545":{"version":20210707095545,"path":"db/migrate/20210707095545_add_status_to_merge_request_cleanup_schedules.rb","name":"AddStatusToMergeRequestCleanupSchedules","type":"regular","intro_on_current_branch":false},"20210819162047":{"version":20210819162047,"path":"db/migrate/20210819162047_add_columns_to_namespace_settings.rb","name":"AddColumnsToNamespaceSettings","type":"regular","intro_on_current_branch":false},"20220516201245":{"version":20220516201245,"path":"db/migrate/20220516201245_add_security_policy_scan_execution_schedules_to_plan_limits.rb","name":"AddSecurityPolicyScanExecutionSchedulesToPlanLimits","type":"regular","intro_on_current_branch":false},"20210604051330":{"version":20210604051330,"path":"db/migrate/20210604051330_create_dast_scanner_profiles_builds.rb","name":"CreateDastScannerProfilesBuilds","type":"regular","intro_on_current_branch":false},"20220624090458":{"version":20220624090458,"path":"db/migrate/20220624090458_add_index_on_runner_version.rb","name":"AddIndexOnRunnerVersion","type":"regular","intro_on_current_branch":false},"20210303193544":{"version":20210303193544,"path":"db/migrate/20210303193544_add_concurrent_fields_to_bulk_imports_trackers.rb","name":"AddConcurrentFieldsToBulkImportsTrackers","type":"regular","intro_on_current_branch":false},"20211026124336":{"version":20211026124336,"path":"db/migrate/20211026124336_add_archive_trace_events_to_integrations.rb","name":"AddArchiveTraceEventsToIntegrations","type":"regular","intro_on_current_branch":false},"20210706084713":{"version":20210706084713,"path":"db/migrate/20210706084713_add_devops_adoption_snapshots_index.rb","name":"AddDevopsAdoptionSnapshotsIndex","type":"regular","intro_on_current_branch":false},"20211130205719":{"version":20211130205719,"path":"db/migrate/20211130205719_add_uniqueness_for_evidence_occurrence_id.rb","name":"AddUniquenessForEvidenceOccurrenceId","type":"regular","intro_on_current_branch":false},"20210707173645":{"version":20210707173645,"path":"db/migrate/20210707173645_add_project_settings_previous_default_branch_text_limit.rb","name":"AddProjectSettingsPreviousDefaultBranchTextLimit","type":"regular","intro_on_current_branch":false},"20220914112457":{"version":20220914112457,"path":"db/migrate/20220914112457_add_reject_non_dco_commits_to_push_rules.rb","name":"AddRejectNonDcoCommitsToPushRules","type":"regular","intro_on_current_branch":false},"20210730103808":{"version":20210730103808,"path":"db/migrate/20210730103808_add_stage_hash_fk_to_group_stages.rb","name":"AddStageHashFkToGroupStages","type":"regular","intro_on_current_branch":false},"20210525100539":{"version":20210525100539,"path":"db/migrate/20210525100539_initialize_conversion_of_geo_job_artifact_deleted_events_to_bigint.rb","name":"InitializeConversionOfGeoJobArtifactDeletedEventsToBigint","type":"regular","intro_on_current_branch":false},"20210930081208":{"version":20210930081208,"path":"db/migrate/20210930081208_fix_deprecated_api_throttle_defaults.rb","name":"FixDeprecatedApiThrottleDefaults","type":"regular","intro_on_current_branch":false},"20220505092254":{"version":20220505092254,"path":"db/migrate/20220505092254_add_allow_stale_runner_pruning_index_to_namespace_ci_cd_settings.rb","name":"AddAllowStaleRunnerPruningIndexToNamespaceCiCdSettings","type":"regular","intro_on_current_branch":false},"20220608114734":{"version":20220608114734,"path":"db/migrate/20220608114734_prepare_confidential_note_index_on_id.rb","name":"PrepareConfidentialNoteIndexOnId","type":"regular","intro_on_current_branch":false},"20220525123940":{"version":20220525123940,"path":"db/migrate/20220525123940_add_raw_to_ci_job_variables.rb","name":"AddRawToCiJobVariables","type":"regular","intro_on_current_branch":false},"20220728114136":{"version":20220728114136,"path":"db/migrate/20220728114136_make_ssh_signature_key_nullable.rb","name":"MakeSshSignatureKeyNullable","type":"regular","intro_on_current_branch":false},"20210430124630":{"version":20210430124630,"path":"db/migrate/20210430124630_add_devops_adoption_indexes.rb","name":"AddDevopsAdoptionIndexes","type":"regular","intro_on_current_branch":false},"20210917153645":{"version":20210917153645,"path":"db/migrate/20210917153645_remove_pipeline_fk_from_packages_build_infos.rb","name":"RemovePipelineFkFromPackagesBuildInfos","type":"regular","intro_on_current_branch":false},"20210722074339":{"version":20210722074339,"path":"db/migrate/20210722074339_add_xor_check_constraint_for_escalation_rules.rb","name":"AddXorCheckConstraintForEscalationRules","type":"regular","intro_on_current_branch":false},"20210914145810":{"version":20210914145810,"path":"db/migrate/20210914145810_add_throttle_deprecated_api_columns.rb","name":"AddThrottleDeprecatedApiColumns","type":"regular","intro_on_current_branch":false},"20210831134840":{"version":20210831134840,"path":"db/migrate/20210831134840_add_package_file_id_channel_idx_to_packages_helm_file_metadata.rb","name":"AddPackageFileIdChannelIdxToPackagesHelmFileMetadata","type":"regular","intro_on_current_branch":false},"20220726154012":{"version":20220726154012,"path":"db/migrate/20220726154012_ensure_sbom_occurrences_is_empty.rb","name":"EnsureSbomOccurrencesIsEmpty","type":"regular","intro_on_current_branch":false},"20211011141239":{"version":20211011141239,"path":"db/migrate/20211011141239_create_projects_sync_events.rb","name":"CreateProjectsSyncEvents","type":"regular","intro_on_current_branch":false},"20220203091304":{"version":20220203091304,"path":"db/migrate/20220203091304_fix_unique_packages_index_excluding_pending_destruction_status.rb","name":"FixUniquePackagesIndexExcludingPendingDestructionStatus","type":"regular","intro_on_current_branch":false},"20210807101446":{"version":20210807101446,"path":"db/migrate/20210807101446_add_cadence_to_dast_profile_schedules.rb","name":"AddCadenceToDastProfileSchedules","type":"regular","intro_on_current_branch":false},"20210422195929":{"version":20210422195929,"path":"db/migrate/20210422195929_create_elastic_reindexing_slices.rb","name":"CreateElasticReindexingSlices","type":"regular","intro_on_current_branch":false},"20220704034105":{"version":20220704034105,"path":"db/migrate/20220704034105_add_application_settings_git_users_allowlist_max_usernames_constraint.rb","name":"AddApplicationSettingsGitUsersAllowlistMaxUsernamesConstraint","type":"regular","intro_on_current_branch":false},"20210826122748":{"version":20210826122748,"path":"db/migrate/20210826122748_create_loose_foreign_keys_deleted_records.rb","name":"CreateLooseForeignKeysDeletedRecords","type":"regular","intro_on_current_branch":false},"20210406140057":{"version":20210406140057,"path":"db/migrate/20210406140057_add_total_tuple_count_to_batched_migrations.rb","name":"AddTotalTupleCountToBatchedMigrations","type":"regular","intro_on_current_branch":false},"20211118100959":{"version":20211118100959,"path":"db/migrate/20211118100959_change_default_value_of_loose_fk_deleted_records_partition.rb","name":"ChangeDefaultValueOfLooseFkDeletedRecordsPartition","type":"regular","intro_on_current_branch":false},"20220415015143":{"version":20220415015143,"path":"db/migrate/20220415015143_replace_iterations_cadence_date_range_constraint.rb","name":"ReplaceIterationsCadenceDateRangeConstraint","type":"regular","intro_on_current_branch":false},"20210914172202":{"version":20210914172202,"path":"db/migrate/20210914172202_add_status_index_to_dependency_proxy_tables.rb","name":"AddStatusIndexToDependencyProxyTables","type":"regular","intro_on_current_branch":false},"20210721125545":{"version":20210721125545,"path":"db/migrate/20210721125545_add_signed_file_to_packages_debian_group_distributions.rb","name":"AddSignedFileToPackagesDebianGroupDistributions","type":"regular","intro_on_current_branch":false},"20220303190555":{"version":20220303190555,"path":"db/migrate/20220303190555_add_comment_to_deployment_approvals.rb","name":"AddCommentToDeploymentApprovals","type":"regular","intro_on_current_branch":false},"20211119085015":{"version":20211119085015,"path":"db/migrate/20211119085015_add_orignal_filename_to_ci_job_artifact.rb","name":"AddOrignalFilenameToCiJobArtifact","type":"regular","intro_on_current_branch":false},"20210929121516":{"version":20210929121516,"path":"db/migrate/20210929121516_add_releases_author_id_id_created_at_index.rb","name":"AddReleasesAuthorIdIdCreatedAtIndex","type":"regular","intro_on_current_branch":false},"20211115145107":{"version":20211115145107,"path":"db/migrate/20211115145107_add_created_at_to_namespace_monthly_usages.rb","name":"AddCreatedAtToNamespaceMonthlyUsages","type":"regular","intro_on_current_branch":false},"20210712052519":{"version":20210712052519,"path":"db/migrate/20210712052519_add_label_applied_issuable_closed_to_issuable_sla.rb","name":"AddLabelAppliedIssuableClosedToIssuableSla","type":"regular","intro_on_current_branch":false},"20210908100810":{"version":20210908100810,"path":"db/migrate/20210908100810_add_jobs_per_stage_page_size_to_application_settings.rb","name":"AddJobsPerStagePageSizeToApplicationSettings","type":"regular","intro_on_current_branch":false},"20210429192653":{"version":20210429192653,"path":"db/migrate/20210429192653_add_generic_package_duplicate_settings_to_namespace_package_settings.rb","name":"AddGenericPackageDuplicateSettingsToNamespacePackageSettings","type":"regular","intro_on_current_branch":false},"20210322063450":{"version":20210322063450,"path":"db/migrate/20210322063450_add_ci_pipeline_id_fk_to_dast_profiles_pipelines.rb","name":"AddCiPipelineIdFkToDastProfilesPipelines","type":"regular","intro_on_current_branch":false},"20210818055357":{"version":20210818055357,"path":"db/migrate/20210818055357_add_unique_commit_design_user_mention_indexes.rb","name":"AddUniqueCommitDesignUserMentionIndexes","type":"regular","intro_on_current_branch":false},"20220627061008":{"version":20220627061008,"path":"db/migrate/20220627061008_add_fei_shu_integration.rb","name":"AddFeiShuIntegration","type":"regular","intro_on_current_branch":false},"20210831203408":{"version":20210831203408,"path":"db/migrate/20210831203408_upsert_base_work_item_types.rb","name":"UpsertBaseWorkItemTypes","type":"regular","intro_on_current_branch":false},"20220512020500":{"version":20220512020500,"path":"db/migrate/20220512020500_index_batched_migrations_on_gitlab_schema_and_configuration.rb","name":"IndexBatchedMigrationsOnGitlabSchemaAndConfiguration","type":"regular","intro_on_current_branch":false},"20220329095632":{"version":20220329095632,"path":"db/migrate/20220329095632_add_theme_to_broadcast_message.rb","name":"AddThemeToBroadcastMessage","type":"regular","intro_on_current_branch":false},"20210302103851":{"version":20210302103851,"path":"db/migrate/20210302103851_add_deployed_deployment_id_index_to_project_pages_metadata.rb","name":"AddDeployedDeploymentIdIndexToProjectPagesMetadata","type":"regular","intro_on_current_branch":false},"20210903054158":{"version":20210903054158,"path":"db/migrate/20210903054158_recreate_stage_issue_events_table_with_bigints.rb","name":"RecreateStageIssueEventsTableWithBigints","type":"regular","intro_on_current_branch":false},"20210421190157":{"version":20210421190157,"path":"db/migrate/20210421190157_remove_elastic_task_null_constraint_from_elastic_reindexing_subtasks.rb","name":"RemoveElasticTaskNullConstraintFromElasticReindexingSubtasks","type":"regular","intro_on_current_branch":false},"20211202094944":{"version":20211202094944,"path":"db/migrate/20211202094944_move_loose_fk_deleted_records_to_dynamic_schema.rb","name":"MoveLooseFkDeletedRecordsToDynamicSchema","type":"regular","intro_on_current_branch":false},"20210923042323":{"version":20210923042323,"path":"db/migrate/20210923042323_add_meta_data_to_user_credit_card_validations.rb","name":"AddMetaDataToUserCreditCardValidations","type":"regular","intro_on_current_branch":false},"20211006060254":{"version":20211006060254,"path":"db/migrate/20211006060254_add_topics_total_projects_count_cache.rb","name":"AddTopicsTotalProjectsCountCache","type":"regular","intro_on_current_branch":false},"20210317104301":{"version":20210317104301,"path":"db/migrate/20210317104301_create_in_product_marketing_emails.rb","name":"CreateInProductMarketingEmails","type":"regular","intro_on_current_branch":false},"20211203161840":{"version":20211203161840,"path":"db/migrate/20211203161840_add_updated_state_by_user_id_to_merge_request_assignees.rb","name":"AddUpdatedStateByUserIdToMergeRequestAssignees","type":"regular","intro_on_current_branch":false},"20220627140315":{"version":20220627140315,"path":"db/migrate/20220627140315_add_last_feature_flag_updated_at_to_operations_feature_flags_clients.rb","name":"AddLastFeatureFlagUpdatedAtToOperationsFeatureFlagsClients","type":"regular","intro_on_current_branch":false},"20220811092251":{"version":20220811092251,"path":"db/migrate/20220811092251_add_ml_candidates_reference_to_experiment.rb","name":"AddMlCandidatesReferenceToExperiment","type":"regular","intro_on_current_branch":false},"20211006122010":{"version":20211006122010,"path":"db/migrate/20211006122010_add_topics_total_projects_count_index.rb","name":"AddTopicsTotalProjectsCountIndex","type":"regular","intro_on_current_branch":false},"20211108203248":{"version":20211108203248,"path":"db/migrate/20211108203248_update_dependency_proxy_indexes_with_read_at.rb","name":"UpdateDependencyProxyIndexesWithReadAt","type":"regular","intro_on_current_branch":false},"20210420120734":{"version":20210420120734,"path":"db/migrate/20210420120734_initialize_conversion_of_ci_job_artifacts_to_bigint.rb","name":"InitializeConversionOfCiJobArtifactsToBigint","type":"regular","intro_on_current_branch":false},"20211105161404":{"version":20211105161404,"path":"db/migrate/20211105161404_insert_dotenv_application_limits.rb","name":"InsertDotenvApplicationLimits","type":"regular","intro_on_current_branch":false},"20220627171538":{"version":20220627171538,"path":"db/migrate/20220627171538_add_error_tracking_settings.rb","name":"AddErrorTrackingSettings","type":"regular","intro_on_current_branch":false},"20220803154758":{"version":20220803154758,"path":"db/migrate/20220803154758_add_user_id_fkey_for_user_project_callout.rb","name":"AddUserIdFkeyForUserProjectCallout","type":"regular","intro_on_current_branch":false},"20211201061733":{"version":20211201061733,"path":"db/migrate/20211201061733_add_future_subscriptions_to_application_settings.rb","name":"AddFutureSubscriptionsToApplicationSettings","type":"regular","intro_on_current_branch":false},"20220329110630":{"version":20220329110630,"path":"db/migrate/20220329110630_add_ci_namespace_mirrors_unnest_index_on_traversal_ids.rb","name":"AddCiNamespaceMirrorsUnnestIndexOnTraversalIds","type":"regular","intro_on_current_branch":false},"20210617161348":{"version":20210617161348,"path":"db/migrate/20210617161348_cascade_delete_freeze_periods.rb","name":"CascadeDeleteFreezePeriods","type":"regular","intro_on_current_branch":false},"20220818140553":{"version":20220818140553,"path":"db/migrate/20220818140553_add_unique_index_to_sbom_occurrences_on_ingestion_attributes.rb","name":"AddUniqueIndexToSbomOccurrencesOnIngestionAttributes","type":"regular","intro_on_current_branch":false},"20220615091059":{"version":20220615091059,"path":"db/migrate/20220615091059_add_created_at_index_to_compliance_management_frameworks.rb","name":"AddCreatedAtIndexToComplianceManagementFrameworks","type":"regular","intro_on_current_branch":false},"20210520133440":{"version":20210520133440,"path":"db/migrate/20210520133440_backfill_taggings_for_bigint_conversion.rb","name":"BackfillTaggingsForBigintConversion","type":"regular","intro_on_current_branch":false},"20220331125725":{"version":20220331125725,"path":"db/migrate/20220331125725_add_title_to_topic.rb","name":"AddTitleToTopic","type":"regular","intro_on_current_branch":false},"20210607050531":{"version":20210607050531,"path":"db/migrate/20210607050531_add_text_limit_to_user_details_pronouns.rb","name":"AddTextLimitToUserDetailsPronouns","type":"regular","intro_on_current_branch":false},"20220412135446":{"version":20220412135446,"path":"db/migrate/20220412135446_add_unique_fingerprint_sha256_index_to_key.rb","name":"AddUniqueFingerprintSha256IndexToKey","type":"regular","intro_on_current_branch":false},"20220117225936":{"version":20220117225936,"path":"db/migrate/20220117225936_add_text_limits_to_container_repositories_migration_columns.rb","name":"AddTextLimitsToContainerRepositoriesMigrationColumns","type":"regular","intro_on_current_branch":false},"20220912180807":{"version":20220912180807,"path":"db/migrate/20220912180807_add_epoch_column_to_rpm_metadata.rb","name":"AddEpochColumnToRpmMetadata","type":"regular","intro_on_current_branch":false},"20211215182006":{"version":20211215182006,"path":"db/migrate/20211215182006_update_application_settings_protected_paths.rb","name":"UpdateApplicationSettingsProtectedPaths","type":"regular","intro_on_current_branch":false},"20220204193000":{"version":20220204193000,"path":"db/migrate/20220204193000_add_integrations_encrypted_properties.rb","name":"AddIntegrationsEncryptedProperties","type":"regular","intro_on_current_branch":false},"20220301175104":{"version":20220301175104,"path":"db/migrate/20220301175104_change_security_orchestration_policy_configuration_project_index.rb","name":"ChangeSecurityOrchestrationPolicyConfigurationProjectIndex","type":"regular","intro_on_current_branch":false},"20211004075629":{"version":20211004075629,"path":"db/migrate/20211004075629_add_topics_name_gin_index.rb","name":"AddTopicsNameGinIndex","type":"regular","intro_on_current_branch":false},"20211105160316":{"version":20211105160316,"path":"db/migrate/20211105160316_create_dotenv_application_limits.rb","name":"CreateDotenvApplicationLimits","type":"regular","intro_on_current_branch":false},"20211005063519":{"version":20211005063519,"path":"db/migrate/20211005063519_add_foreign_key_to_corpuses_on_project.rb","name":"AddForeignKeyToCorpusesOnProject","type":"regular","intro_on_current_branch":false},"20211207165508":{"version":20211207165508,"path":"db/migrate/20211207165508_add_protected_environments_required_approval_count_check_constraint.rb","name":"AddProtectedEnvironmentsRequiredApprovalCountCheckConstraint","type":"regular","intro_on_current_branch":false},"20220406193806":{"version":20220406193806,"path":"db/migrate/20220406193806_add_maven_package_requests_forwarding_to_application_settings.rb","name":"AddMavenPackageRequestsForwardingToApplicationSettings","type":"regular","intro_on_current_branch":false},"20211011141243":{"version":20211011141243,"path":"db/migrate/20211011141243_create_projects_sync_trigger.rb","name":"CreateProjectsSyncTrigger","type":"regular","intro_on_current_branch":false},"20220322143441":{"version":20220322143441,"path":"db/migrate/20220322143441_add_dora_incidents_count.rb","name":"AddDoraIncidentsCount","type":"regular","intro_on_current_branch":false},"20220511090324":{"version":20220511090324,"path":"db/migrate/20220511090324_add_last_consistency_check_cursors_to_vsa_aggregations.rb","name":"AddLastConsistencyCheckCursorsToVsaAggregations","type":"regular","intro_on_current_branch":false},"20210326035553":{"version":20210326035553,"path":"db/migrate/20210326035553_add_index_for_project_deployments_with_environment_id_and_updated_at.rb","name":"AddIndexForProjectDeploymentsWithEnvironmentIdAndUpdatedAt","type":"regular","intro_on_current_branch":false},"20210316171009":{"version":20210316171009,"path":"db/migrate/20210316171009_create_packages_helm_file_metadata.rb","name":"CreatePackagesHelmFileMetadata","type":"regular","intro_on_current_branch":false},"20210616110748":{"version":20210616110748,"path":"db/migrate/20210616110748_add_issue_index_to_requirement.rb","name":"AddIssueIndexToRequirement","type":"regular","intro_on_current_branch":false},"20211224114539":{"version":20211224114539,"path":"db/migrate/20211224114539_add_packages_cleanup_package_file_worker_capacity_check_constraint_to_app_settings.rb","name":"AddPackagesCleanupPackageFileWorkerCapacityCheckConstraintToAppSettings","type":"regular","intro_on_current_branch":false},"20220217100008":{"version":20220217100008,"path":"db/migrate/20220217100008_add_container_registry_expiration_policies_caching_to_application_settings.rb","name":"AddContainerRegistryExpirationPoliciesCachingToApplicationSettings","type":"regular","intro_on_current_branch":false},"20210622135221":{"version":20210622135221,"path":"db/migrate/20210622135221_add_foreign_key_for_environment_id_to_environments.rb","name":"AddForeignKeyForEnvironmentIdToEnvironments","type":"regular","intro_on_current_branch":false},"20210709221659":{"version":20210709221659,"path":"db/migrate/20210709221659_add_work_item_type_id_to_issue.rb","name":"AddWorkItemTypeIdToIssue","type":"regular","intro_on_current_branch":false},"20220125084127":{"version":20220125084127,"path":"db/migrate/20220125084127_add_cleanup_attempts_to_loose_foreign_keys_deleted_records.rb","name":"AddCleanupAttemptsToLooseForeignKeysDeletedRecords","type":"regular","intro_on_current_branch":false},"20210419090412":{"version":20210419090412,"path":"db/migrate/20210419090412_remove_debian_group_architectures_distribution_id_index.rb","name":"RemoveDebianGroupArchitecturesDistributionIdIndex","type":"regular","intro_on_current_branch":false},"20220627122229":{"version":20220627122229,"path":"db/migrate/20220627122229_create_user_namespace_callouts.rb","name":"CreateUserNamespaceCallouts","type":"regular","intro_on_current_branch":false},"20210825110016":{"version":20210825110016,"path":"db/migrate/20210825110016_create_analytics_cycle_analytics_issue_stage_events.rb","name":"CreateAnalyticsCycleAnalyticsIssueStageEvents","type":"regular","intro_on_current_branch":false},"20210729061556":{"version":20210729061556,"path":"db/migrate/20210729061556_add_text_limit_to_user_details_pronunciation.rb","name":"AddTextLimitToUserDetailsPronunciation","type":"regular","intro_on_current_branch":false},"20211101132310":{"version":20211101132310,"path":"db/migrate/20211101132310_add_reindexing_queue.rb","name":"AddReindexingQueue","type":"regular","intro_on_current_branch":false},"20220805180311":{"version":20220805180311,"path":"db/migrate/20220805180311_add_unique_index_on_sbom_component_type_and_name.rb","name":"AddUniqueIndexOnSbomComponentTypeAndName","type":"regular","intro_on_current_branch":false},"20211119195201":{"version":20211119195201,"path":"db/migrate/20211119195201_create_deployment_approvals.rb","name":"CreateDeploymentApprovals","type":"regular","intro_on_current_branch":false},"20211111164047":{"version":20211111164047,"path":"db/migrate/20211111164047_add_squash_commit_template_limit_to_project_settings.rb","name":"AddSquashCommitTemplateLimitToProjectSettings","type":"regular","intro_on_current_branch":false},"20210818175949":{"version":20210818175949,"path":"db/migrate/20210818175949_update_integrations_trigger_type_new_on_insert.rb","name":"UpdateIntegrationsTriggerTypeNewOnInsert","type":"regular","intro_on_current_branch":false},"20210414045322":{"version":20210414045322,"path":"db/migrate/20210414045322_add_pause_seconds_to_batched_background_migration_jobs.rb","name":"AddPauseSecondsToBatchedBackgroundMigrationJobs","type":"regular","intro_on_current_branch":false},"20211013192749":{"version":20211013192749,"path":"db/migrate/20211013192749_add_states_into_approval_project_rules.rb","name":"AddStatesIntoApprovalProjectRules","type":"regular","intro_on_current_branch":false},"20210312193532":{"version":20210312193532,"path":"db/migrate/20210312193532_add_resource_access_token_creation_allowed_to_namespace_settings.rb","name":"AddResourceAccessTokenCreationAllowedToNamespaceSettings","type":"regular","intro_on_current_branch":false},"20220406133049":{"version":20220406133049,"path":"db/migrate/20220406133049_add_delayed_group_deletion_to_application_settings.rb","name":"AddDelayedGroupDeletionToApplicationSettings","type":"regular","intro_on_current_branch":false},"20220401044858":{"version":20220401044858,"path":"db/migrate/20220401044858_add_user_id_and_state_index_to_merge_request_assignees.rb","name":"AddUserIdAndStateIndexToMergeRequestAssignees","type":"regular","intro_on_current_branch":false},"20220815152905":{"version":20220815152905,"path":"db/migrate/20220815152905_create_vulnerability_advisories.rb","name":"CreateVulnerabilityAdvisories","type":"regular","intro_on_current_branch":false},"20210302155904":{"version":20210302155904,"path":"db/migrate/20210302155904_remove_index_for_security_orchestration_policy.rb","name":"RemoveIndexForSecurityOrchestrationPolicy","type":"regular","intro_on_current_branch":false},"20220901090004":{"version":20220901090004,"path":"db/migrate/20220901090004_add_can_create_group_to_application_settings.rb","name":"AddCanCreateGroupToApplicationSettings","type":"regular","intro_on_current_branch":false},"20210505070812":{"version":20210505070812,"path":"db/migrate/20210505070812_create_packages_debian_project_distribution_keys.rb","name":"CreatePackagesDebianProjectDistributionKeys","type":"regular","intro_on_current_branch":false},"20210412132736":{"version":20210412132736,"path":"db/migrate/20210412132736_add_instance_url_to_jira_connect_installations.rb","name":"AddInstanceUrlToJiraConnectInstallations","type":"regular","intro_on_current_branch":false},"20210730194555":{"version":20210730194555,"path":"db/migrate/20210730194555_create_incident_management_pending_issue_escalations.rb","name":"CreateIncidentManagementPendingIssueEscalations","type":"regular","intro_on_current_branch":false},"20210830085837":{"version":20210830085837,"path":"db/migrate/20210830085837_add_throttle_authenticated_git_lfs_columns.rb","name":"AddThrottleAuthenticatedGitLfsColumns","type":"regular","intro_on_current_branch":false},"20220208171826":{"version":20220208171826,"path":"db/migrate/20220208171826_update_default_scan_method_of_dast_site_profile.rb","name":"UpdateDefaultScanMethodOfDastSiteProfile","type":"regular","intro_on_current_branch":false},"20211028132247":{"version":20211028132247,"path":"db/migrate/20211028132247_create_packages_npm_metadata.rb","name":"CreatePackagesNpmMetadata","type":"regular","intro_on_current_branch":false},"20211115142911":{"version":20211115142911,"path":"db/migrate/20211115142911_add_foreign_key_to_incident_management_timeline_events_on_issue.rb","name":"AddForeignKeyToIncidentManagementTimelineEventsOnIssue","type":"regular","intro_on_current_branch":false},"20211213142344":{"version":20211213142344,"path":"db/migrate/20211213142344_add_settings_user_email_lookup_limit.rb","name":"AddSettingsUserEmailLookupLimit","type":"regular","intro_on_current_branch":false},"20220703182254":{"version":20220703182254,"path":"db/migrate/20220703182254_add_partition_number_to_security_findings.rb","name":"AddPartitionNumberToSecurityFindings","type":"regular","intro_on_current_branch":false},"20220918124223":{"version":20220918124223,"path":"db/migrate/20220918124223_add_suggested_reviewers_enabled_to_project_settings.rb","name":"AddSuggestedReviewersEnabledToProjectSettings","type":"regular","intro_on_current_branch":false},"20210512120122":{"version":20210512120122,"path":"db/migrate/20210512120122_add_pending_builds_table.rb","name":"AddPendingBuildsTable","type":"regular","intro_on_current_branch":false},"20210414100914":{"version":20210414100914,"path":"db/migrate/20210414100914_add_bulk_import_exports_table.rb","name":"AddBulkImportExportsTable","type":"regular","intro_on_current_branch":false},"20211103062728":{"version":20211103062728,"path":"db/migrate/20211103062728_add_with_highest_role_minimal_access_to_users_statistics.rb","name":"AddWithHighestRoleMinimalAccessToUsersStatistics","type":"regular","intro_on_current_branch":false},"20210407111027":{"version":20210407111027,"path":"db/migrate/20210407111027_add_whats_new_application_setting.rb","name":"AddWhatsNewApplicationSetting","type":"regular","intro_on_current_branch":false},"20210705132928":{"version":20210705132928,"path":"db/migrate/20210705132928_add_new_user_signups_cap_to_namespace_settings.rb","name":"AddNewUserSignupsCapToNamespaceSettings","type":"regular","intro_on_current_branch":false},"20210825193448":{"version":20210825193448,"path":"db/migrate/20210825193448_add_iteration_cadence_id_to_issue_boards.rb","name":"AddIterationCadenceIdToIssueBoards","type":"regular","intro_on_current_branch":false},"20210908195506":{"version":20210908195506,"path":"db/migrate/20210908195506_add_data_to_vulnerability_finding_evidence.rb","name":"AddDataToVulnerabilityFindingEvidence","type":"regular","intro_on_current_branch":false},"20220412140755":{"version":20220412140755,"path":"db/migrate/20220412140755_drop_unique_fingerprint_md5_index_from_key.rb","name":"DropUniqueFingerprintMd5IndexFromKey","type":"regular","intro_on_current_branch":false},"20210316094323":{"version":20210316094323,"path":"db/migrate/20210316094323_add_trial_extension_type_to_gitlab_subscriptions.rb","name":"AddTrialExtensionTypeToGitlabSubscriptions","type":"regular","intro_on_current_branch":false},"20210331125111":{"version":20210331125111,"path":"db/migrate/20210331125111_add_default_target_project.rb","name":"AddDefaultTargetProject","type":"regular","intro_on_current_branch":false},"20220118155846":{"version":20220118155846,"path":"db/migrate/20220118155846_add_runner_token_expiration_interval_settings_to_application_settings.rb","name":"AddRunnerTokenExpirationIntervalSettingsToApplicationSettings","type":"regular","intro_on_current_branch":false},"20210604032738":{"version":20210604032738,"path":"db/migrate/20210604032738_create_dast_site_profiles_builds.rb","name":"CreateDastSiteProfilesBuilds","type":"regular","intro_on_current_branch":false},"20220901131828":{"version":20220901131828,"path":"db/migrate/20220901131828_add_environments_project_name_lower_pattern_ops_index.rb","name":"AddEnvironmentsProjectNameLowerPatternOpsIndex","type":"regular","intro_on_current_branch":false},"20220412171810":{"version":20220412171810,"path":"db/migrate/20220412171810_add_otp_secret_expires_at.rb","name":"AddOtpSecretExpiresAt","type":"regular","intro_on_current_branch":false},"20220824175648":{"version":20220824175648,"path":"db/migrate/20220824175648_limit_namespaces_sync_triggers_to_traversal_ids_update.rb","name":"LimitNamespacesSyncTriggersToTraversalIdsUpdate","type":"regular","intro_on_current_branch":false},"20211118124628":{"version":20211118124628,"path":"db/migrate/20211118124628_add_foreign_key_to_vulnerability_reads_on_project.rb","name":"AddForeignKeyToVulnerabilityReadsOnProject","type":"regular","intro_on_current_branch":false},"20210818185548":{"version":20210818185548,"path":"db/migrate/20210818185548_add_tag_ids_index_to_ci_pending_build.rb","name":"AddTagIdsIndexToCiPendingBuild","type":"regular","intro_on_current_branch":false},"20210601123341":{"version":20210601123341,"path":"db/migrate/20210601123341_add_running_builds_table.rb","name":"AddRunningBuildsTable","type":"regular","intro_on_current_branch":false},"20220808133824":{"version":20220808133824,"path":"db/migrate/20220808133824_add_timestamps_to_project_statistics.rb","name":"AddTimestampsToProjectStatistics","type":"regular","intro_on_current_branch":false},"20220421114418":{"version":20220421114418,"path":"db/migrate/20220421114418_make_fingerprint_nullable_for_group_deploy_key.rb","name":"MakeFingerprintNullableForGroupDeployKey","type":"regular","intro_on_current_branch":false},"20220301175426":{"version":20220301175426,"path":"db/migrate/20220301175426_create_project_build_artifacts_size_refresh.rb","name":"CreateProjectBuildArtifactsSizeRefresh","type":"regular","intro_on_current_branch":false},"20220901035722":{"version":20220901035722,"path":"db/migrate/20220901035722_add_temp_project_member_index.rb","name":"AddTempProjectMemberIndex","type":"regular","intro_on_current_branch":false},"20220401110443":{"version":20220401110443,"path":"db/migrate/20220401110443_add_on_hold_until_column_for_batched_migration.rb","name":"AddOnHoldUntilColumnForBatchedMigration","type":"regular","intro_on_current_branch":false},"20210928171122":{"version":20210928171122,"path":"db/migrate/20210928171122_add_group_id_status_id_index_to_dependency_proxy_tables.rb","name":"AddGroupIdStatusIdIndexToDependencyProxyTables","type":"regular","intro_on_current_branch":false},"20220331130726":{"version":20220331130726,"path":"db/migrate/20220331130726_add_text_limit_to_topics_title.rb","name":"AddTextLimitToTopicsTitle","type":"regular","intro_on_current_branch":false},"20210331145548":{"version":20210331145548,"path":"db/migrate/20210331145548_add_index_for_last_deployment.rb","name":"AddIndexForLastDeployment","type":"regular","intro_on_current_branch":false},"20211119170805":{"version":20211119170805,"path":"db/migrate/20211119170805_remove_test_report_requirement_issue_constraint.rb","name":"RemoveTestReportRequirementIssueConstraint","type":"regular","intro_on_current_branch":false},"20210428151144":{"version":20210428151144,"path":"db/migrate/20210428151144_update_invalid_web_hooks.rb","name":"UpdateInvalidWebHooks","type":"regular","intro_on_current_branch":false},"20210601131742":{"version":20210601131742,"path":"db/migrate/20210601131742_update_web_hook_calls_limit.rb","name":"UpdateWebHookCallsLimit","type":"regular","intro_on_current_branch":false},"20210707113056":{"version":20210707113056,"path":"db/migrate/20210707113056_add_tags_array_to_ci_pending_builds.rb","name":"AddTagsArrayToCiPendingBuilds","type":"regular","intro_on_current_branch":false},"20210722074242":{"version":20210722074242,"path":"db/migrate/20210722074242_add_user_to_escalation_rules.rb","name":"AddUserToEscalationRules","type":"regular","intro_on_current_branch":false},"20211005112645":{"version":20211005112645,"path":"db/migrate/20211005112645_add_project_id_foreign_key_to_member_tasks.rb","name":"AddProjectIdForeignKeyToMemberTasks","type":"regular","intro_on_current_branch":false},"20220421141342":{"version":20220421141342,"path":"db/migrate/20220421141342_add_allowed_plans_to_ci_runners.rb","name":"AddAllowedPlansToCiRunners","type":"regular","intro_on_current_branch":false},"20210517144856":{"version":20210517144856,"path":"db/migrate/20210517144856_require_snapshot_namespace.rb","name":"RequireSnapshotNamespace","type":"regular","intro_on_current_branch":false},"20211123182614":{"version":20211123182614,"path":"db/migrate/20211123182614_make_iteration_cadences_start_date_nullable.rb","name":"MakeIterationCadencesStartDateNullable","type":"regular","intro_on_current_branch":false},"20210602122213":{"version":20210602122213,"path":"db/migrate/20210602122213_add_upcoming_reconciliations.rb","name":"AddUpcomingReconciliations","type":"regular","intro_on_current_branch":false},"20211105125756":{"version":20211105125756,"path":"db/migrate/20211105125756_add_read_at_to_dependency_proxy_manifests.rb","name":"AddReadAtToDependencyProxyManifests","type":"regular","intro_on_current_branch":false},"20210819153805":{"version":20210819153805,"path":"db/migrate/20210819153805_set_default_job_token_scope_true.rb","name":"SetDefaultJobTokenScopeTrue","type":"regular","intro_on_current_branch":false},"20210322182751":{"version":20210322182751,"path":"db/migrate/20210322182751_add_index_to_keys_on_expires_at_and_expiry_notification_undelivered.rb","name":"AddIndexToKeysOnExpiresAtAndExpiryNotificationUndelivered","type":"regular","intro_on_current_branch":false},"20210303053341":{"version":20210303053341,"path":"db/migrate/20210303053341_add_last_edited_at_and_last_edited_by_id_to_notes.rb","name":"AddLastEditedAtAndLastEditedByIdToNotes","type":"regular","intro_on_current_branch":false},"20220202034409":{"version":20220202034409,"path":"db/migrate/20220202034409_add_tmp_index_on_id_and_migration_state_to_container_repositories.rb","name":"AddTmpIndexOnIdAndMigrationStateToContainerRepositories","type":"regular","intro_on_current_branch":false},"20210709085759":{"version":20210709085759,"path":"db/migrate/20210709085759_index_batched_migration_jobs_by_max_value.rb","name":"IndexBatchedMigrationJobsByMaxValue","type":"regular","intro_on_current_branch":false},"20220907124320":{"version":20220907124320,"path":"db/migrate/20220907124320_add_internal_to_notes.rb","name":"AddInternalToNotes","type":"regular","intro_on_current_branch":false},"20210604034354":{"version":20210604034354,"path":"db/migrate/20210604034354_add_dast_site_profile_id_fk_to_dast_site_profiles_builds.rb","name":"AddDastSiteProfileIdFkToDastSiteProfilesBuilds","type":"regular","intro_on_current_branch":false},"20220113164901":{"version":20220113164901,"path":"db/migrate/20220113164901_add_text_limit_to_user_preferences_diffs_colors.rb","name":"AddTextLimitToUserPreferencesDiffsColors","type":"regular","intro_on_current_branch":false},"20211013080716":{"version":20211013080716,"path":"db/migrate/20211013080716_index_include_network_on_user_credit_card_validations.rb","name":"IndexIncludeNetworkOnUserCreditCardValidations","type":"regular","intro_on_current_branch":false},"20210917153905":{"version":20210917153905,"path":"db/migrate/20210917153905_remove_pipeline_fk_from_packages_package_file_build_infos.rb","name":"RemovePipelineFkFromPackagesPackageFileBuildInfos","type":"regular","intro_on_current_branch":false},"20220513114706":{"version":20220513114706,"path":"db/migrate/20220513114706_add_jira_connect_application_id_application_setting.rb","name":"AddJiraConnectApplicationIdApplicationSetting","type":"regular","intro_on_current_branch":false},"20210807102004":{"version":20210807102004,"path":"db/migrate/20210807102004_add_starts_at_to_dast_profile_schedules.rb","name":"AddStartsAtToDastProfileSchedules","type":"regular","intro_on_current_branch":false},"20220609150626":{"version":20220609150626,"path":"db/migrate/20220609150626_add_partial_index_on_slack_integrations_with_bot_user_id.rb","name":"AddPartialIndexOnSlackIntegrationsWithBotUserId","type":"regular","intro_on_current_branch":false},"20210719182944":{"version":20210719182944,"path":"db/migrate/20210719182944_add_request_response_to_supporing_message.rb","name":"AddRequestResponseToSupporingMessage","type":"regular","intro_on_current_branch":false},"20211118124537":{"version":20211118124537,"path":"db/migrate/20211118124537_add_foreign_key_to_vulnerability_reads_on_vulnerability.rb","name":"AddForeignKeyToVulnerabilityReadsOnVulnerability","type":"regular","intro_on_current_branch":false},"20220203134942":{"version":20220203134942,"path":"db/migrate/20220203134942_add_hidden_to_projects.rb","name":"AddHiddenToProjects","type":"regular","intro_on_current_branch":false},"20210921032008":{"version":20210921032008,"path":"db/migrate/20210921032008_add_suggest_pipeline_enabled_to_application_settings.rb","name":"AddSuggestPipelineEnabledToApplicationSettings","type":"regular","intro_on_current_branch":false},"20220615105811":{"version":20220615105811,"path":"db/migrate/20220615105811_add_index_on_clusters_agent_project_id_and_has_vulnerabilities_columns.rb","name":"AddIndexOnClustersAgentProjectIdAndHasVulnerabilitiesColumns","type":"regular","intro_on_current_branch":false},"20220729073603":{"version":20220729073603,"path":"db/migrate/20220729073603_index_personal_access_tokens_on_id_and_created_at.rb","name":"IndexPersonalAccessTokensOnIdAndCreatedAt","type":"regular","intro_on_current_branch":false},"20210323064751":{"version":20210323064751,"path":"db/migrate/20210323064751_add_namespace_traversal_ids_index.rb","name":"AddNamespaceTraversalIdsIndex","type":"regular","intro_on_current_branch":false},"20210308175226":{"version":20210308175226,"path":"db/migrate/20210308175226_add_delayed_project_removal_to_application_settings.rb","name":"AddDelayedProjectRemovalToApplicationSettings","type":"regular","intro_on_current_branch":false},"20211203160952":{"version":20211203160952,"path":"db/migrate/20211203160952_add_updated_state_by_user_id_to_merge_request_reviewers.rb","name":"AddUpdatedStateByUserIdToMergeRequestReviewers","type":"regular","intro_on_current_branch":false},"20210608072312":{"version":20210608072312,"path":"db/migrate/20210608072312_initialize_conversion_of_ci_stages_to_bigint.rb","name":"InitializeConversionOfCiStagesToBigint","type":"regular","intro_on_current_branch":false},"20220711142148":{"version":20220711142148,"path":"db/migrate/20220711142148_add_invitation_flow_enforcement_to_application_settings.rb","name":"AddInvitationFlowEnforcementToApplicationSettings","type":"regular","intro_on_current_branch":false},"20220329130330":{"version":20220329130330,"path":"db/migrate/20220329130330_add_author_to_ci_subscriptions_projects.rb","name":"AddAuthorToCiSubscriptionsProjects","type":"regular","intro_on_current_branch":false},"20211011140931":{"version":20211011140931,"path":"db/migrate/20211011140931_create_ci_project_mirrors.rb","name":"CreateCiProjectMirrors","type":"regular","intro_on_current_branch":false},"20210609090856":{"version":20210609090856,"path":"db/migrate/20210609090856_add_expiry_id_ssh_key_notification_index.rb","name":"AddExpiryIdSshKeyNotificationIndex","type":"regular","intro_on_current_branch":false},"20210616111311":{"version":20210616111311,"path":"db/migrate/20210616111311_add_issue_requirement_foreign_key.rb","name":"AddIssueRequirementForeignKey","type":"regular","intro_on_current_branch":false},"20211004081911":{"version":20211004081911,"path":"db/migrate/20211004081911_add_external_event_destination_limit_to_plan_limits.rb","name":"AddExternalEventDestinationLimitToPlanLimits","type":"regular","intro_on_current_branch":false},"20220211090920":{"version":20220211090920,"path":"db/migrate/20220211090920_cleanup_populate_topics_non_private_projects_count.rb","name":"CleanupPopulateTopicsNonPrivateProjectsCount","type":"regular","intro_on_current_branch":false},"20220118020026":{"version":20220118020026,"path":"db/migrate/20220118020026_add_url_text_limit_to_issuable_metric_images.rb","name":"AddUrlTextLimitToIssuableMetricImages","type":"regular","intro_on_current_branch":false},"20220106230712":{"version":20220106230712,"path":"db/migrate/20220106230712_add_migration_columns_to_container_repositories.rb","name":"AddMigrationColumnsToContainerRepositories","type":"regular","intro_on_current_branch":false},"20220610125248":{"version":20220610125248,"path":"db/migrate/20220610125248_add_enabled_git_access_protocol_to_namespace_settings.rb","name":"AddEnabledGitAccessProtocolToNamespaceSettings","type":"regular","intro_on_current_branch":false},"20220401071609":{"version":20220401071609,"path":"db/migrate/20220401071609_add_campaign_to_in_product_marketing_email.rb","name":"AddCampaignToInProductMarketingEmail","type":"regular","intro_on_current_branch":false},"20220708150335":{"version":20220708150335,"path":"db/migrate/20220708150335_add_merge_requests_foreign_key_to_vulnerability_merge_request_links.rb","name":"AddMergeRequestsForeignKeyToVulnerabilityMergeRequestLinks","type":"regular","intro_on_current_branch":false},"20211015024135":{"version":20211015024135,"path":"db/migrate/20211015024135_add_merge_commit_template_limit_to_project_settings.rb","name":"AddMergeCommitTemplateLimitToProjectSettings","type":"regular","intro_on_current_branch":false},"20220310011530":{"version":20220310011530,"path":"db/migrate/20220310011530_add_database_grafana_config_to_application_settings.rb","name":"AddDatabaseGrafanaConfigToApplicationSettings","type":"regular","intro_on_current_branch":false},"20210730102952":{"version":20210730102952,"path":"db/migrate/20210730102952_add_stage_hash_fk_to_project_stages.rb","name":"AddStageHashFkToProjectStages","type":"regular","intro_on_current_branch":false},"20210424163400":{"version":20210424163400,"path":"db/migrate/20210424163400_add_project_id_fk_to_timelogs.rb","name":"AddProjectIdFkToTimelogs","type":"regular","intro_on_current_branch":false},"20210305180331":{"version":20210305180331,"path":"db/migrate/20210305180331_create_ci_unit_tests.rb","name":"CreateCiUnitTests","type":"regular","intro_on_current_branch":false},"20220131192643":{"version":20220131192643,"path":"db/migrate/20220131192643_add_show_diff_preview_in_email_to_project_settings.rb","name":"AddShowDiffPreviewInEmailToProjectSettings","type":"regular","intro_on_current_branch":false},"20210420173030":{"version":20210420173030,"path":"db/migrate/20210420173030_add_verification_indexes_to_terraform_state_versions.rb","name":"AddVerificationIndexesToTerraformStateVersions","type":"regular","intro_on_current_branch":false},"20210427062807":{"version":20210427062807,"path":"db/migrate/20210427062807_add_index_to_batched_migration_jobs_status.rb","name":"AddIndexToBatchedMigrationJobsStatus","type":"regular","intro_on_current_branch":false},"20210721174441":{"version":20210721174441,"path":"db/migrate/20210721174441_update_escalation_rule_fk_for_pending_alert_escalations.rb","name":"UpdateEscalationRuleFkForPendingAlertEscalations","type":"regular","intro_on_current_branch":false},"20211008193137":{"version":20211008193137,"path":"db/migrate/20211008193137_add_health_status_column_on_clusters_integration_prometheus.rb","name":"AddHealthStatusColumnOnClustersIntegrationPrometheus","type":"regular","intro_on_current_branch":false},"20220211125954":{"version":20220211125954,"path":"db/migrate/20220211125954_create_related_epic_links.rb","name":"CreateRelatedEpicLinks","type":"regular","intro_on_current_branch":false},"20210611100359":{"version":20210611100359,"path":"db/migrate/20210611100359_rebuild_index_for_cadence_iterations_automation.rb","name":"RebuildIndexForCadenceIterationsAutomation","type":"regular","intro_on_current_branch":false},"20210430122951":{"version":20210430122951,"path":"db/migrate/20210430122951_add_snapshot_namespace_id.rb","name":"AddSnapshotNamespaceId","type":"regular","intro_on_current_branch":false},"20220112205111":{"version":20220112205111,"path":"db/migrate/20220112205111_create_security_training_providers.rb","name":"CreateSecurityTrainingProviders","type":"regular","intro_on_current_branch":false},"20210705144657":{"version":20210705144657,"path":"db/migrate/20210705144657_add_instance_runners_enabled_to_ci_pending_build.rb","name":"AddInstanceRunnersEnabledToCiPendingBuild","type":"regular","intro_on_current_branch":false},"20220128194722":{"version":20220128194722,"path":"db/migrate/20220128194722_add_index_on_migration_state_and_import_done_at_to_container_repositories.rb","name":"AddIndexOnMigrationStateAndImportDoneAtToContainerRepositories","type":"regular","intro_on_current_branch":false},"20210317100520":{"version":20210317100520,"path":"db/migrate/20210317100520_create_elastic_index_settings.rb","name":"CreateElasticIndexSettings","type":"regular","intro_on_current_branch":false},"20210922215740":{"version":20210922215740,"path":"db/migrate/20210922215740_create_issue_customer_relations_contacts.rb","name":"CreateIssueCustomerRelationsContacts","type":"regular","intro_on_current_branch":false},"20210908061132":{"version":20210908061132,"path":"db/migrate/20210908061132_insert_dast_profile_schedules_plan_limits.rb","name":"InsertDastProfileSchedulesPlanLimits","type":"regular","intro_on_current_branch":false},"20210531053916":{"version":20210531053916,"path":"db/migrate/20210531053916_rename_instance_statistics_measurements.rb","name":"RenameInstanceStatisticsMeasurements","type":"regular","intro_on_current_branch":false},"20210401192808":{"version":20210401192808,"path":"db/migrate/20210401192808_add_index_to_keys_on_expires_at_and_before_expiry_notification_undelivered.rb","name":"AddIndexToKeysOnExpiresAtAndBeforeExpiryNotificationUndelivered","type":"regular","intro_on_current_branch":false},"20220221102333":{"version":20220221102333,"path":"db/migrate/20220221102333_change_maintainer_note_limit_in_ci_runner.rb","name":"ChangeMaintainerNoteLimitInCiRunner","type":"regular","intro_on_current_branch":false},"20220120211831":{"version":20220120211831,"path":"db/migrate/20220120211831_temp_index_for_group_namespace_member_backfill.rb","name":"TempIndexForGroupNamespaceMemberBackfill","type":"regular","intro_on_current_branch":false},"20210603222333":{"version":20210603222333,"path":"db/migrate/20210603222333_remove_builds_email_service_from_services.rb","name":"RemoveBuildsEmailServiceFromServices","type":"regular","intro_on_current_branch":false},"20210913010411":{"version":20210913010411,"path":"db/migrate/20210913010411_create_agent_project_authorizations.rb","name":"CreateAgentProjectAuthorizations","type":"regular","intro_on_current_branch":false},"20220614120415":{"version":20220614120415,"path":"db/migrate/20220614120415_add_toggle_opt_in_jwt.rb","name":"AddToggleOptInJwt","type":"regular","intro_on_current_branch":false},"20220531024905":{"version":20220531024905,"path":"db/migrate/20220531024905_add_operations_access_levels_to_project_feature.rb","name":"AddOperationsAccessLevelsToProjectFeature","type":"regular","intro_on_current_branch":false},"20220923103006":{"version":20220923103006,"path":"db/migrate/20220923103006_add_ci_pipeline_metadata_title.rb","name":"AddCiPipelineMetadataTitle","type":"regular","intro_on_current_branch":false},"20211110010101":{"version":20211110010101,"path":"db/migrate/20211110010101_add_index_on_unarchived_deployments.rb","name":"AddIndexOnUnarchivedDeployments","type":"regular","intro_on_current_branch":false},"20211118124650":{"version":20211118124650,"path":"db/migrate/20211118124650_add_foreign_key_to_vulnerability_reads_on_scanner.rb","name":"AddForeignKeyToVulnerabilityReadsOnScanner","type":"regular","intro_on_current_branch":false},"20210503105845":{"version":20210503105845,"path":"db/migrate/20210503105845_add_project_value_stream_id_to_project_stages.rb","name":"AddProjectValueStreamIdToProjectStages","type":"regular","intro_on_current_branch":false},"20220726154016":{"version":20220726154016,"path":"db/migrate/20220726154016_make_component_version_nullable.rb","name":"MakeComponentVersionNullable","type":"regular","intro_on_current_branch":false},"20210330015805":{"version":20210330015805,"path":"db/migrate/20210330015805_add_cloud_to_licenses.rb","name":"AddCloudToLicenses","type":"regular","intro_on_current_branch":false},"20220105152547":{"version":20220105152547,"path":"db/migrate/20220105152547_add_foreign_key_to_updated_state_by_user_id_to_merge_request_assignees.rb","name":"AddForeignKeyToUpdatedStateByUserIdToMergeRequestAssignees","type":"regular","intro_on_current_branch":false},"20220531100920":{"version":20220531100920,"path":"db/migrate/20220531100920_add_license_usage_data_exported_to_application_settings.rb","name":"AddLicenseUsageDataExportedToApplicationSettings","type":"regular","intro_on_current_branch":false},"20220713175658":{"version":20220713175658,"path":"db/migrate/20220713175658_add_packages_cleanup_policies_worker_capacity_to_application_settings.rb","name":"AddPackagesCleanupPoliciesWorkerCapacityToApplicationSettings","type":"regular","intro_on_current_branch":false},"20220304052335":{"version":20220304052335,"path":"db/migrate/20220304052335_remove_not_null_contraint_on_title_from_sprints.rb","name":"RemoveNotNullContraintOnTitleFromSprints","type":"regular","intro_on_current_branch":false},"20211207154414":{"version":20211207154414,"path":"db/migrate/20211207154414_add_ci_runners_index_on_contacted_at_where_active_is_false.rb","name":"AddCiRunnersIndexOnContactedAtWhereActiveIsFalse","type":"regular","intro_on_current_branch":false},"20210301200959":{"version":20210301200959,"path":"db/migrate/20210301200959_init_schema.rb","name":"InitSchema","type":"regular","intro_on_current_branch":false},"20210424115725":{"version":20210424115725,"path":"db/migrate/20210424115725_swap_partitioned_web_hook_logs.rb","name":"SwapPartitionedWebHookLogs","type":"regular","intro_on_current_branch":false},"20211117174209":{"version":20211117174209,"path":"db/migrate/20211117174209_create_vulnerability_reads.rb","name":"CreateVulnerabilityReads","type":"regular","intro_on_current_branch":false},"20211126142354":{"version":20211126142354,"path":"db/migrate/20211126142354_add_text_limit_to_encrypted_static_object_token.rb","name":"AddTextLimitToEncryptedStaticObjectToken","type":"regular","intro_on_current_branch":false},"20220119170426":{"version":20220119170426,"path":"db/migrate/20220119170426_remove_temporary_vulnerability_occurrences_deduplication_index.rb","name":"RemoveTemporaryVulnerabilityOccurrencesDeduplicationIndex","type":"regular","intro_on_current_branch":false},"20211203161942":{"version":20211203161942,"path":"db/migrate/20211203161942_add_index_to_merge_request_assignees_updated_state_by_user_id.rb","name":"AddIndexToMergeRequestAssigneesUpdatedStateByUserId","type":"regular","intro_on_current_branch":false},"20210621091830":{"version":20210621091830,"path":"db/migrate/20210621091830_add_devops_adoption_snapshot_dependency_scanning.rb","name":"AddDevopsAdoptionSnapshotDependencyScanning","type":"regular","intro_on_current_branch":false},"20220107165036":{"version":20220107165036,"path":"db/migrate/20220107165036_remove_note_id_index.rb","name":"RemoveNoteIdIndex","type":"regular","intro_on_current_branch":false},"20210419203018":{"version":20210419203018,"path":"db/migrate/20210419203018_add_remote_text_limit_to_import_url_in_import_export_upload.rb","name":"AddRemoteTextLimitToImportUrlInImportExportUpload","type":"regular","intro_on_current_branch":false},"20220310101118":{"version":20220310101118,"path":"db/migrate/20220310101118_update_holder_name_limit.rb","name":"UpdateHolderNameLimit","type":"regular","intro_on_current_branch":false},"20220216110023":{"version":20220216110023,"path":"db/migrate/20220216110023_create_saved_replies.rb","name":"CreateSavedReplies","type":"regular","intro_on_current_branch":false},"20220413124200":{"version":20220413124200,"path":"db/migrate/20220413124200_add_view_for_per_table_autovacuum_status.rb","name":"AddViewForPerTableAutovacuumStatus","type":"regular","intro_on_current_branch":false},"20220913082930":{"version":20220913082930,"path":"db/migrate/20220913082930_rename_iterations_cadences_last_run_date_to_next_run_date.rb","name":"RenameIterationsCadencesLastRunDateToNextRunDate","type":"regular","intro_on_current_branch":false},"20210317210338":{"version":20210317210338,"path":"db/migrate/20210317210338_add_valid_runner_registrars.rb","name":"AddValidRunnerRegistrars","type":"regular","intro_on_current_branch":false},"20220304152729":{"version":20220304152729,"path":"db/migrate/20220304152729_add_default_to_required_python_on_packages_pypi_metadata.rb","name":"AddDefaultToRequiredPythonOnPackagesPypiMetadata","type":"regular","intro_on_current_branch":false},"20220513093614":{"version":20220513093614,"path":"db/migrate/20220513093614_add_ding_talk_into_application_settings.rb","name":"AddDingTalkIntoApplicationSettings","type":"regular","intro_on_current_branch":false},"20220401113123":{"version":20220401113123,"path":"db/migrate/20220401113123_add_check_constraint_to_vsa_aggregation_runtime_data_columns.rb","name":"AddCheckConstraintToVsaAggregationRuntimeDataColumns","type":"regular","intro_on_current_branch":false},"20210607080044":{"version":20210607080044,"path":"db/migrate/20210607080044_remove_temporary_index_on_security_findings_scan_id.rb","name":"RemoveTemporaryIndexOnSecurityFindingsScanId","type":"regular","intro_on_current_branch":false},"20210608103235":{"version":20210608103235,"path":"db/migrate/20210608103235_add_issue_index_to_test_report.rb","name":"AddIssueIndexToTestReport","type":"regular","intro_on_current_branch":false},"20220909091410":{"version":20220909091410,"path":"db/migrate/20220909091410_add_dismissal_reason_to_vulnerability_state_transitions.rb","name":"AddDismissalReasonToVulnerabilityStateTransitions","type":"regular","intro_on_current_branch":false},"20210819185500":{"version":20210819185500,"path":"db/migrate/20210819185500_create_external_audit_event_destinations_table.rb","name":"CreateExternalAuditEventDestinationsTable","type":"regular","intro_on_current_branch":false},"20220520143105":{"version":20220520143105,"path":"db/migrate/20220520143105_add_keys_relation_to_ssh_signatures.rb","name":"AddKeysRelationToSshSignatures","type":"regular","intro_on_current_branch":false},"20210615064342":{"version":20210615064342,"path":"db/migrate/20210615064342_add_issue_id_to_requirement.rb","name":"AddIssueIdToRequirement","type":"regular","intro_on_current_branch":false},"20210517130723":{"version":20210517130723,"path":"db/migrate/20210517130723_make_snapshot_segment_id_optional.rb","name":"MakeSnapshotSegmentIdOptional","type":"regular","intro_on_current_branch":false},"20210525100603":{"version":20210525100603,"path":"db/migrate/20210525100603_backfill_geo_job_artifact_deleted_events_for_bigint_conversion.rb","name":"BackfillGeoJobArtifactDeletedEventsForBigintConversion","type":"regular","intro_on_current_branch":false},"20210819152723":{"version":20210819152723,"path":"db/migrate/20210819152723_remove_tmp_index_approval_project_rules_scanners.rb","name":"RemoveTmpIndexApprovalProjectRulesScanners","type":"regular","intro_on_current_branch":false},"20210730101609":{"version":20210730101609,"path":"db/migrate/20210730101609_create_analytics_cycle_analytics_stage_event_hashes.rb","name":"CreateAnalyticsCycleAnalyticsStageEventHashes","type":"regular","intro_on_current_branch":false},"20210722210041":{"version":20210722210041,"path":"db/migrate/20210722210041_add_overridden_uuid_to_security_findings.rb","name":"AddOverriddenUuidToSecurityFindings","type":"regular","intro_on_current_branch":false},"20210721174453":{"version":20210721174453,"path":"db/migrate/20210721174453_remove_schedule_and_status_null_constraints_from_pending_escalations_alert.rb","name":"RemoveScheduleAndStatusNullConstraintsFromPendingEscalationsAlert","type":"regular","intro_on_current_branch":false},"20210813101742":{"version":20210813101742,"path":"db/migrate/20210813101742_create_zentao_tracker_data.rb","name":"CreateZentaoTrackerData","type":"regular","intro_on_current_branch":false},"20220109133006":{"version":20220109133006,"path":"db/migrate/20220109133006_remove_ci_pipelines_lock_version_index.rb","name":"RemoveCiPipelinesLockVersionIndex","type":"regular","intro_on_current_branch":false},"20210512183310":{"version":20210512183310,"path":"db/migrate/20210512183310_add_limit_to_findings_evidences_response_body.rb","name":"AddLimitToFindingsEvidencesResponseBody","type":"regular","intro_on_current_branch":false},"20220422220507":{"version":20220422220507,"path":"db/migrate/20220422220507_remove_tmp_index_supporting_leaky_regex_cleanup.rb","name":"RemoveTmpIndexSupportingLeakyRegexCleanup","type":"regular","intro_on_current_branch":false},"20211216134134":{"version":20211216134134,"path":"db/migrate/20211216134134_add_text_limit_to_vulnerability_reads_cluster_agent_id.rb","name":"AddTextLimitToVulnerabilityReadsClusterAgentId","type":"regular","intro_on_current_branch":false},"20210916132547":{"version":20210916132547,"path":"db/migrate/20210916132547_add_process_mode_to_resource_groups.rb","name":"AddProcessModeToResourceGroups","type":"regular","intro_on_current_branch":false},"20220414203622":{"version":20220414203622,"path":"db/migrate/20220414203622_add_index_for_columns_user_custom_attribute.rb","name":"AddIndexForColumnsUserCustomAttribute","type":"regular","intro_on_current_branch":false},"20220222072536":{"version":20220222072536,"path":"db/migrate/20220222072536_add_target_access_levels_to_broadcast_messages.rb","name":"AddTargetAccessLevelsToBroadcastMessages","type":"regular","intro_on_current_branch":false},"20220520122755":{"version":20220520122755,"path":"db/migrate/20220520122755_unlock_delayed_project_removal.rb","name":"UnlockDelayedProjectRemoval","type":"regular","intro_on_current_branch":false},"20210527065005":{"version":20210527065005,"path":"db/migrate/20210527065005_add_index_for_cadence_iterations_automation.rb","name":"AddIndexForCadenceIterationsAutomation","type":"regular","intro_on_current_branch":false},"20220516092207":{"version":20220516092207,"path":"db/migrate/20220516092207_add_globally_allowed_ips_to_application_setting.rb","name":"AddGloballyAllowedIpsToApplicationSetting","type":"regular","intro_on_current_branch":false},"20211005100112":{"version":20211005100112,"path":"db/migrate/20211005100112_recreate_loose_fk_insert_function.rb","name":"RecreateLooseFkInsertFunction","type":"regular","intro_on_current_branch":false},"20211130151724":{"version":20211130151724,"path":"db/migrate/20211130151724_add_foreign_key_to_incident_management_timeline_events_on_note.rb","name":"AddForeignKeyToIncidentManagementTimelineEventsOnNote","type":"regular","intro_on_current_branch":false},"20220118155847":{"version":20220118155847,"path":"db/migrate/20220118155847_add_runner_token_expiration_interval_settings_to_namespace_settings.rb","name":"AddRunnerTokenExpirationIntervalSettingsToNamespaceSettings","type":"regular","intro_on_current_branch":false},"20210317192943":{"version":20210317192943,"path":"db/migrate/20210317192943_add_expiry_notification_delivered_to_keys.rb","name":"AddExpiryNotificationDeliveredToKeys","type":"regular","intro_on_current_branch":false},"20220503073401":{"version":20220503073401,"path":"db/migrate/20220503073401_recreate_index_for_group_group_link_with_both_group_ids.rb","name":"RecreateIndexForGroupGroupLinkWithBothGroupIds","type":"regular","intro_on_current_branch":false},"20211005063616":{"version":20211005063616,"path":"db/migrate/20211005063616_add_foreign_key_to_corpuses_on_user.rb","name":"AddForeignKeyToCorpusesOnUser","type":"regular","intro_on_current_branch":false},"20211213130324":{"version":20211213130324,"path":"db/migrate/20211213130324_update_timelogs_spent_at_default.rb","name":"UpdateTimelogsSpentAtDefault","type":"regular","intro_on_current_branch":false},"20220523030804":{"version":20220523030804,"path":"db/migrate/20220523030804_add_web_hook_calls_med_and_max_to_plan_limits.rb","name":"AddWebHookCallsMedAndMaxToPlanLimits","type":"regular","intro_on_current_branch":false},"20220213100000":{"version":20220213100000,"path":"db/migrate/20220213100000_remove_integration_type_triggers.rb","name":"RemoveIntegrationTypeTriggers","type":"regular","intro_on_current_branch":false},"20210708134446":{"version":20210708134446,"path":"db/migrate/20210708134446_remove_not_null_constraint_from_terms.rb","name":"RemoveNotNullConstraintFromTerms","type":"regular","intro_on_current_branch":false},"20220113164801":{"version":20220113164801,"path":"db/migrate/20220113164801_add_diffs_colors_to_user_preferences.rb","name":"AddDiffsColorsToUserPreferences","type":"regular","intro_on_current_branch":false},"20220811092245":{"version":20220811092245,"path":"db/migrate/20220811092245_create_ml_candidate_params.rb","name":"CreateMlCandidateParams","type":"regular","intro_on_current_branch":false},"20220708142803":{"version":20220708142803,"path":"db/migrate/20220708142803_add_composite_index_for_protected_environment_approval_rules.rb","name":"AddCompositeIndexForProtectedEnvironmentApprovalRules","type":"regular","intro_on_current_branch":false},"20210302025305":{"version":20210302025305,"path":"db/migrate/20210302025305_add_excluded_urls_and_request_headers_to_dast_site_profiles.rb","name":"AddExcludedUrlsAndRequestHeadersToDastSiteProfiles","type":"regular","intro_on_current_branch":false},"20220204093120":{"version":20220204093120,"path":"db/migrate/20220204093120_create_analytics_cycle_analytics_aggregations.rb","name":"CreateAnalyticsCycleAnalyticsAggregations","type":"regular","intro_on_current_branch":false},"20220628121712":{"version":20220628121712,"path":"db/migrate/20220628121712_add_namespace_bans_user_id_foreign_key.rb","name":"AddNamespaceBansUserIdForeignKey","type":"regular","intro_on_current_branch":false},"20210608110760":{"version":20210608110760,"path":"db/migrate/20210608110760_add_requirement_test_reports_foreign_key.rb","name":"AddRequirementTestReportsForeignKey","type":"regular","intro_on_current_branch":false},"20210415144538":{"version":20210415144538,"path":"db/migrate/20210415144538_remove_index_epics_on_group_id_from_epics.rb","name":"RemoveIndexEpicsOnGroupIdFromEpics","type":"regular","intro_on_current_branch":false},"20210809014850":{"version":20210809014850,"path":"db/migrate/20210809014850_create_agent_group_authorizations.rb","name":"CreateAgentGroupAuthorizations","type":"regular","intro_on_current_branch":false},"20210729061526":{"version":20210729061526,"path":"db/migrate/20210729061526_add_pronunciation_to_user_details.rb","name":"AddPronunciationToUserDetails","type":"regular","intro_on_current_branch":false},"20210922220104":{"version":20210922220104,"path":"db/migrate/20210922220104_add_issue_customer_relations_contacts_foreign_keys.rb","name":"AddIssueCustomerRelationsContactsForeignKeys","type":"regular","intro_on_current_branch":false},"20210511104930":{"version":20210511104930,"path":"db/migrate/20210511104930_add_index_to_epic_board_recent_visits.rb","name":"AddIndexToEpicBoardRecentVisits","type":"regular","intro_on_current_branch":false},"20220819184945":{"version":20220819184945,"path":"db/migrate/20220819184945_add_dashboard_limit_to_application_settings.rb","name":"AddDashboardLimitToApplicationSettings","type":"regular","intro_on_current_branch":false},"20220511151646":{"version":20220511151646,"path":"db/migrate/20220511151646_add_exclude_from_free_user_cap_to_namespace_settings.rb","name":"AddExcludeFromFreeUserCapToNamespaceSettings","type":"regular","intro_on_current_branch":false},"20210412111213":{"version":20210412111213,"path":"db/migrate/20210412111213_create_security_orchestration_policy_rule_schedule.rb","name":"CreateSecurityOrchestrationPolicyRuleSchedule","type":"regular","intro_on_current_branch":false},"20210305145622":{"version":20210305145622,"path":"db/migrate/20210305145622_add_terraform_module_max_file_size_to_plan_limits.rb","name":"AddTerraformModuleMaxFileSizeToPlanLimits","type":"regular","intro_on_current_branch":false},"20211208111425":{"version":20211208111425,"path":"db/migrate/20211208111425_add_executor_type_column_to_ci_runners.rb","name":"AddExecutorTypeColumnToCiRunners","type":"regular","intro_on_current_branch":false},"20211001001222":{"version":20211001001222,"path":"db/migrate/20211001001222_add_source_version_to_bulk_imports.rb","name":"AddSourceVersionToBulkImports","type":"regular","intro_on_current_branch":false},"20220324175325":{"version":20220324175325,"path":"db/migrate/20220324175325_add_key_data_to_secure_files.rb","name":"AddKeyDataToSecureFiles","type":"regular","intro_on_current_branch":false},"20211118103439":{"version":20211118103439,"path":"db/migrate/20211118103439_remove_hardcoded_partition_from_loose_fk_trigger_function.rb","name":"RemoveHardcodedPartitionFromLooseFkTriggerFunction","type":"regular","intro_on_current_branch":false},"20210803110920":{"version":20210803110920,"path":"db/migrate/20210803110920_add_unique_index_to_vulnerability_flags_table.rb","name":"AddUniqueIndexToVulnerabilityFlagsTable","type":"regular","intro_on_current_branch":false},"20210329192716":{"version":20210329192716,"path":"db/migrate/20210329192716_add_composite_index_to_award_emoji.rb","name":"AddCompositeIndexToAwardEmoji","type":"regular","intro_on_current_branch":false},"20210303091651":{"version":20210303091651,"path":"db/migrate/20210303091651_add_index_to_environments_tier.rb","name":"AddIndexToEnvironmentsTier","type":"regular","intro_on_current_branch":false},"20220113135449":{"version":20220113135449,"path":"db/migrate/20220113135449_add_package_files_limit_to_application_settings.rb","name":"AddPackageFilesLimitToApplicationSettings","type":"regular","intro_on_current_branch":false},"20220412060931":{"version":20220412060931,"path":"db/migrate/20220412060931_add_nullify_build_data_trigger_on_merge_request_metrics.rb","name":"AddNullifyBuildDataTriggerOnMergeRequestMetrics","type":"regular","intro_on_current_branch":false},"20220707160707":{"version":20220707160707,"path":"db/migrate/20220707160707_rename_slack_integration_service_id_to_integration_id.rb","name":"RenameSlackIntegrationServiceIdToIntegrationId","type":"regular","intro_on_current_branch":false},"20220828131848":{"version":20220828131848,"path":"db/migrate/20220828131848_create_packages_rpm_metadata.rb","name":"CreatePackagesRpmMetadata","type":"regular","intro_on_current_branch":false},"20220627122230":{"version":20220627122230,"path":"db/migrate/20220627122230_add_foreign_keys_to_user_namespace_callouts.rb","name":"AddForeignKeysToUserNamespaceCallouts","type":"regular","intro_on_current_branch":false},"20210913010432":{"version":20210913010432,"path":"db/migrate/20210913010432_add_agent_project_authorizations_foreign_keys.rb","name":"AddAgentProjectAuthorizationsForeignKeys","type":"regular","intro_on_current_branch":false},"20220111154950":{"version":20220111154950,"path":"db/migrate/20220111154950_add_token_expires_at_to_ci_runners.rb","name":"AddTokenExpiresAtToCiRunners","type":"regular","intro_on_current_branch":false},"20220619184931":{"version":20220619184931,"path":"db/migrate/20220619184931_create_project_relation_export_uploads.rb","name":"CreateProjectRelationExportUploads","type":"regular","intro_on_current_branch":false},"20210915001242":{"version":20210915001242,"path":"db/migrate/20210915001242_add_index_on_clusters_integration_elastic_stack_enabled.rb","name":"AddIndexOnClustersIntegrationElasticStackEnabled","type":"regular","intro_on_current_branch":false},"20220502125053":{"version":20220502125053,"path":"db/migrate/20220502125053_recreate_index_for_project_group_link_with_group_id_and_project_id.rb","name":"RecreateIndexForProjectGroupLinkWithGroupIdAndProjectId","type":"regular","intro_on_current_branch":false},"20220722150231":{"version":20220722150231,"path":"db/migrate/20220722150231_create_function_gitlab_schema_prevent_write.rb","name":"CreateFunctionGitlabSchemaPreventWrite","type":"regular","intro_on_current_branch":false},"20211118114228":{"version":20211118114228,"path":"db/migrate/20211118114228_add_max_ssh_key_lifetime_to_application_settings.rb","name":"AddMaxSshKeyLifetimeToApplicationSettings","type":"regular","intro_on_current_branch":false},"20220310011613":{"version":20220310011613,"path":"db/migrate/20220310011613_add_text_limit_to_database_grafana_application_settings.rb","name":"AddTextLimitToDatabaseGrafanaApplicationSettings","type":"regular","intro_on_current_branch":false},"20210317123054":{"version":20210317123054,"path":"db/migrate/20210317123054_add_throttle_package_registry_columns.rb","name":"AddThrottlePackageRegistryColumns","type":"regular","intro_on_current_branch":false},"20210824105038":{"version":20210824105038,"path":"db/migrate/20210824105038_add_timestamp_columns_to_ci_build_trace_metadata.rb","name":"AddTimestampColumnsToCiBuildTraceMetadata","type":"regular","intro_on_current_branch":false},"20210928155022":{"version":20210928155022,"path":"db/migrate/20210928155022_improve_index_for_error_tracking.rb","name":"ImproveIndexForErrorTracking","type":"regular","intro_on_current_branch":false},"20220829183356":{"version":20220829183356,"path":"db/migrate/20220829183356_replace_index_on_credit_card_validations.rb","name":"ReplaceIndexOnCreditCardValidations","type":"regular","intro_on_current_branch":false},"20210608072346":{"version":20210608072346,"path":"db/migrate/20210608072346_backfill_ci_stages_for_bigint_conversion.rb","name":"BackfillCiStagesForBigintConversion","type":"regular","intro_on_current_branch":false},"20220713175737":{"version":20220713175737,"path":"db/migrate/20220713175737_add_application_settings_packages_cleanup_policies_worker_capacity_constraint.rb","name":"AddApplicationSettingsPackagesCleanupPoliciesWorkerCapacityConstraint","type":"regular","intro_on_current_branch":false},"20220519013213":{"version":20220519013213,"path":"db/migrate/20220519013213_create_cluster_enabled_grants.rb","name":"CreateClusterEnabledGrants","type":"regular","intro_on_current_branch":false},"20210305183904":{"version":20210305183904,"path":"db/migrate/20210305183904_add_ci_builds_fk_to_ci_unit_test_failures.rb","name":"AddCiBuildsFkToCiUnitTestFailures","type":"regular","intro_on_current_branch":false},"20220708150315":{"version":20220708150315,"path":"db/migrate/20220708150315_add_vulnerabilities_foreign_key_to_vulnerability_merge_request_links.rb","name":"AddVulnerabilitiesForeignKeyToVulnerabilityMergeRequestLinks","type":"regular","intro_on_current_branch":false},"20211216135651":{"version":20211216135651,"path":"db/migrate/20211216135651_add_index_to_cluster_agent_id.rb","name":"AddIndexToClusterAgentId","type":"regular","intro_on_current_branch":false},"20210817130415":{"version":20210817130415,"path":"db/migrate/20210817130415_add_project_id_name_version_id_to_npm_packages.rb","name":"AddProjectIdNameVersionIdToNpmPackages","type":"regular","intro_on_current_branch":false},"20220902165931":{"version":20220902165931,"path":"db/migrate/20220902165931_index_evironments_on_merge_request_id.rb","name":"IndexEvironmentsOnMergeRequestId","type":"regular","intro_on_current_branch":false},"20220207083129":{"version":20220207083129,"path":"db/migrate/20220207083129_add_users_get_by_id_limit_to_application_setting.rb","name":"AddUsersGetByIdLimitToApplicationSetting","type":"regular","intro_on_current_branch":false},"20220316022505":{"version":20220316022505,"path":"db/migrate/20220316022505_create_namespace_details.rb","name":"CreateNamespaceDetails","type":"regular","intro_on_current_branch":false},"20210318134427":{"version":20210318134427,"path":"db/migrate/20210318134427_delete_security_findings_without_uuid.rb","name":"DeleteSecurityFindingsWithoutUuid","type":"regular","intro_on_current_branch":false},"20220803004853":{"version":20220803004853,"path":"db/migrate/20220803004853_add_auto_ban_user_to_namespace_settings.rb","name":"AddAutoBanUserToNamespaceSettings","type":"regular","intro_on_current_branch":false},"20220803235114":{"version":20220803235114,"path":"db/migrate/20220803235114_add_auto_ban_user_to_application_settings.rb","name":"AddAutoBanUserToApplicationSettings","type":"regular","intro_on_current_branch":false},"20220516054002":{"version":20220516054002,"path":"db/migrate/20220516054002_temp_index_for_project_namespace_member_backfill.rb","name":"TempIndexForProjectNamespaceMemberBackfill","type":"regular","intro_on_current_branch":false},"20210715074933":{"version":20210715074933,"path":"db/migrate/20210715074933_add_foreign_key_to_dast_profile_schedules_on_user.rb","name":"AddForeignKeyToDastProfileSchedulesOnUser","type":"regular","intro_on_current_branch":false},"20220525123851":{"version":20220525123851,"path":"db/migrate/20220525123851_add_raw_to_ci_group_variables.rb","name":"AddRawToCiGroupVariables","type":"regular","intro_on_current_branch":false},"20211126042235":{"version":20211126042235,"path":"db/migrate/20211126042235_add_sequence_column_to_sprints_table.rb","name":"AddSequenceColumnToSprintsTable","type":"regular","intro_on_current_branch":false},"20210526190553":{"version":20210526190553,"path":"db/migrate/20210526190553_insert_ci_daily_pipeline_schedule_triggers_plan_limits.rb","name":"InsertCiDailyPipelineScheduleTriggersPlanLimits","type":"regular","intro_on_current_branch":false},"20210527134019":{"version":20210527134019,"path":"db/migrate/20210527134019_add_diff_max_files_to_application_settings.rb","name":"AddDiffMaxFilesToApplicationSettings","type":"regular","intro_on_current_branch":false},"20220610074326":{"version":20220610074326,"path":"db/migrate/20220610074326_add_epic_issue_weight.rb","name":"AddEpicIssueWeight","type":"regular","intro_on_current_branch":false},"20211011004242":{"version":20211011004242,"path":"db/migrate/20211011004242_create_content_blocked_states.rb","name":"CreateContentBlockedStates","type":"regular","intro_on_current_branch":false},"20210305002016":{"version":20210305002016,"path":"db/migrate/20210305002016_update_terraform_states_locked_by_user_id_foreign_key.rb","name":"UpdateTerraformStatesLockedByUserIdForeignKey","type":"regular","intro_on_current_branch":false},"20211126204445":{"version":20211126204445,"path":"db/migrate/20211126204445_add_task_to_work_item_types.rb","name":"AddTaskToWorkItemTypes","type":"regular","intro_on_current_branch":false},"20211112073413":{"version":20211112073413,"path":"db/migrate/20211112073413_change_package_index_on_corpus.rb","name":"ChangePackageIndexOnCorpus","type":"regular","intro_on_current_branch":false},"20220707181920":{"version":20220707181920,"path":"db/migrate/20220707181920_add_member_role_id_to_members.rb","name":"AddMemberRoleIdToMembers","type":"regular","intro_on_current_branch":false},"20220208170445":{"version":20220208170445,"path":"db/migrate/20220208170445_add_not_valid_foreign_key_to_ci_builds_runner_id.rb","name":"AddNotValidForeignKeyToCiBuildsRunnerId","type":"regular","intro_on_current_branch":false},"20220211214605":{"version":20220211214605,"path":"db/migrate/20220211214605_update_integrations_trigger_type_new_on_insert_null_safe.rb","name":"UpdateIntegrationsTriggerTypeNewOnInsertNullSafe","type":"regular","intro_on_current_branch":false},"20211020030948":{"version":20211020030948,"path":"db/migrate/20211020030948_add_runtime_runner_features_to_ci_builds_metadata.rb","name":"AddRuntimeRunnerFeaturesToCiBuildsMetadata","type":"regular","intro_on_current_branch":false},"20220902065558":{"version":20220902065558,"path":"db/migrate/20220902065558_add_partition_id_to_ci_builds_metadata.rb","name":"AddPartitionIdToCiBuildsMetadata","type":"regular","intro_on_current_branch":false},"20210427200840":{"version":20210427200840,"path":"db/migrate/20210427200840_add_text_limit_to_iterations_cadences_description.rb","name":"AddTextLimitToIterationsCadencesDescription","type":"regular","intro_on_current_branch":false},"20210305182855":{"version":20210305182855,"path":"db/migrate/20210305182855_create_ci_unit_test_failures.rb","name":"CreateCiUnitTestFailures","type":"regular","intro_on_current_branch":false},"20210721125637":{"version":20210721125637,"path":"db/migrate/20210721125637_add_text_limit_to_packages_debian_group_distributions_signed_files.rb","name":"AddTextLimitToPackagesDebianGroupDistributionsSignedFiles","type":"regular","intro_on_current_branch":false},"20210709132707":{"version":20210709132707,"path":"db/migrate/20210709132707_change_default_job_token_scope_enabled.rb","name":"ChangeDefaultJobTokenScopeEnabled","type":"regular","intro_on_current_branch":false},"20220309100648":{"version":20220309100648,"path":"db/migrate/20220309100648_add_time_to_restore_service_dora_metric.rb","name":"AddTimeToRestoreServiceDoraMetric","type":"regular","intro_on_current_branch":false},"20210601125410":{"version":20210601125410,"path":"db/migrate/20210601125410_add_runners_created_at_index.rb","name":"AddRunnersCreatedAtIndex","type":"regular","intro_on_current_branch":false},"20211015021114":{"version":20211015021114,"path":"db/migrate/20211015021114_add_merge_commit_template_to_project_settings.rb","name":"AddMergeCommitTemplateToProjectSettings","type":"regular","intro_on_current_branch":false},"20220113135924":{"version":20220113135924,"path":"db/migrate/20220113135924_add_application_settings_package_files_limit_constraints.rb","name":"AddApplicationSettingsPackageFilesLimitConstraints","type":"regular","intro_on_current_branch":false},"20210429181325":{"version":20210429181325,"path":"db/migrate/20210429181325_add_failure_tracking_to_web_hooks.rb","name":"AddFailureTrackingToWebHooks","type":"regular","intro_on_current_branch":false},"20220523163734":{"version":20220523163734,"path":"db/migrate/20220523163734_update_vulnerability_reads_trigger_functions.rb","name":"UpdateVulnerabilityReadsTriggerFunctions","type":"regular","intro_on_current_branch":false},"20220506180411":{"version":20220506180411,"path":"db/migrate/20220506180411_add_index_to_vulnerability_feedback_finding_uuid.rb","name":"AddIndexToVulnerabilityFeedbackFindingUuid","type":"regular","intro_on_current_branch":false},"20210511104929":{"version":20210511104929,"path":"db/migrate/20210511104929_add_epic_board_recent_visits_table.rb","name":"AddEpicBoardRecentVisitsTable","type":"regular","intro_on_current_branch":false},"20220112232037":{"version":20220112232037,"path":"db/migrate/20220112232037_add_member_namespace_reference.rb","name":"AddMemberNamespaceReference","type":"regular","intro_on_current_branch":false},"20220401110511":{"version":20220401110511,"path":"db/migrate/20220401110511_add_runtime_data_columns_to_vsa_aggregations.rb","name":"AddRuntimeDataColumnsToVsaAggregations","type":"regular","intro_on_current_branch":false},"20210915070423":{"version":20210915070423,"path":"db/migrate/20210915070423_add_avatar_and_description_to_topic.rb","name":"AddAvatarAndDescriptionToTopic","type":"regular","intro_on_current_branch":false},"20220530103023":{"version":20220530103023,"path":"db/migrate/20220530103023_add_created_at_and_id_index_to_deployment_approvals.rb","name":"AddCreatedAtAndIdIndexToDeploymentApprovals","type":"regular","intro_on_current_branch":false},"20211012134316":{"version":20211012134316,"path":"db/migrate/20211012134316_clean_up_migrate_merge_request_diff_commit_users.rb","name":"CleanUpMigrateMergeRequestDiffCommitUsers","type":"regular","intro_on_current_branch":false},"20220726154013":{"version":20220726154013,"path":"db/migrate/20220726154013_add_component_id_to_sbom_occurrences.rb","name":"AddComponentIdToSbomOccurrences","type":"regular","intro_on_current_branch":false},"20210526181821":{"version":20210526181821,"path":"db/migrate/20210526181821_add_foreign_key_for_latest_pipeline_id_to_ci_pipelines.rb","name":"AddForeignKeyForLatestPipelineIdToCiPipelines","type":"regular","intro_on_current_branch":false},"20210807101621":{"version":20210807101621,"path":"db/migrate/20210807101621_add_timezone_to_dast_profile_schedules.rb","name":"AddTimezoneToDastProfileSchedules","type":"regular","intro_on_current_branch":false},"20220503035221":{"version":20220503035221,"path":"db/migrate/20220503035221_add_gitlab_schema_to_batched_background_migrations.rb","name":"AddGitlabSchemaToBatchedBackgroundMigrations","type":"regular","intro_on_current_branch":false},"20220619212618":{"version":20220619212618,"path":"db/migrate/20220619212618_add_selective_code_owner_removals_to_project_settings.rb","name":"AddSelectiveCodeOwnerRemovalsToProjectSettings","type":"regular","intro_on_current_branch":false},"20211126115449":{"version":20211126115449,"path":"db/migrate/20211126115449_encrypt_static_objects_external_storage_auth_token.rb","name":"EncryptStaticObjectsExternalStorageAuthToken","type":"regular","intro_on_current_branch":false},"20210830140524":{"version":20210830140524,"path":"db/migrate/20210830140524_add_state_to_member.rb","name":"AddStateToMember","type":"regular","intro_on_current_branch":false},"20210715075203":{"version":20210715075203,"path":"db/migrate/20210715075203_add_foreign_key_to_dast_profile_schedules_on_project.rb","name":"AddForeignKeyToDastProfileSchedulesOnProject","type":"regular","intro_on_current_branch":false},"20210813131313":{"version":20210813131313,"path":"db/migrate/20210813131313_create_foreign_key_on_contacts_group_id.rb","name":"CreateForeignKeyOnContactsGroupId","type":"regular","intro_on_current_branch":false},"20220805193117":{"version":20220805193117,"path":"db/migrate/20220805193117_add_unique_index_to_sbom_sources_on_source_type_and_source.rb","name":"AddUniqueIndexToSbomSourcesOnSourceTypeAndSource","type":"regular","intro_on_current_branch":false},"20220713175812":{"version":20220713175812,"path":"db/migrate/20220713175812_add_enabled_policies_index_to_packages_cleanup_policies.rb","name":"AddEnabledPoliciesIndexToPackagesCleanupPolicies","type":"regular","intro_on_current_branch":false},"20220616182015":{"version":20220616182015,"path":"db/migrate/20220616182015_create_sbom_component_versions.rb","name":"CreateSbomComponentVersions","type":"regular","intro_on_current_branch":false},"20210323125809":{"version":20210323125809,"path":"db/migrate/20210323125809_create_status_check_responses_table.rb","name":"CreateStatusCheckResponsesTable","type":"regular","intro_on_current_branch":false},"20220603095158":{"version":20220603095158,"path":"db/migrate/20220603095158_drop_ci_build_report_results_build_id_sequence.rb","name":"DropCiBuildReportResultsBuildIdSequence","type":"regular","intro_on_current_branch":false},"20210511165250":{"version":20210511165250,"path":"db/migrate/20210511165250_add_foreign_key_to_lfs_objects_projects.rb","name":"AddForeignKeyToLfsObjectsProjects","type":"regular","intro_on_current_branch":false},"20220830114228":{"version":20220830114228,"path":"db/migrate/20220830114228_create_dora_configuration_table.rb","name":"CreateDoraConfigurationTable","type":"regular","intro_on_current_branch":false},"20210714120600":{"version":20210714120600,"path":"db/migrate/20210714120600_add_detected_at_to_vulnerabilities.rb","name":"AddDetectedAtToVulnerabilities","type":"regular","intro_on_current_branch":false},"20210721134706":{"version":20210721134706,"path":"db/migrate/20210721134706_add_type_new_to_integrations.rb","name":"AddTypeNewToIntegrations","type":"regular","intro_on_current_branch":false},"20220531140515":{"version":20220531140515,"path":"db/migrate/20220531140515_add_applies_to_all_protected_branches_to_approval_project_rule.rb","name":"AddAppliesToAllProtectedBranchesToApprovalProjectRule","type":"regular","intro_on_current_branch":false},"20210720140841":{"version":20210720140841,"path":"db/migrate/20210720140841_create_postgres_async_indexes_table.rb","name":"CreatePostgresAsyncIndexesTable","type":"regular","intro_on_current_branch":false},"20210323155010":{"version":20210323155010,"path":"db/migrate/20210323155010_populate_dismissal_information_for_vulnerabilities.rb","name":"PopulateDismissalInformationForVulnerabilities","type":"regular","intro_on_current_branch":false},"20220304061631":{"version":20220304061631,"path":"db/migrate/20220304061631_remove_unique_index_for_sprints_on_iterations_cadence_id_and_title.rb","name":"RemoveUniqueIndexForSprintsOnIterationsCadenceIdAndTitle","type":"regular","intro_on_current_branch":false},"20211110014701":{"version":20211110014701,"path":"db/migrate/20211110014701_create_agent_activity_events.rb","name":"CreateAgentActivityEvents","type":"regular","intro_on_current_branch":false},"20211111164025":{"version":20211111164025,"path":"db/migrate/20211111164025_add_squash_commit_template_to_project_settings.rb","name":"AddSquashCommitTemplateToProjectSettings","type":"regular","intro_on_current_branch":false},"20220828094411":{"version":20220828094411,"path":"db/migrate/20220828094411_add_rpm_max_file_size_to_plan_limits.rb","name":"AddRpmMaxFileSizeToPlanLimits","type":"regular","intro_on_current_branch":false},"20210616134905":{"version":20210616134905,"path":"db/migrate/20210616134905_add_timestamp_to_schema_migration.rb","name":"AddTimestampToSchemaMigration","type":"regular","intro_on_current_branch":false},"20210804200114":{"version":20210804200114,"path":"db/migrate/20210804200114_create_customer_relations_organizations.rb","name":"CreateCustomerRelationsOrganizations","type":"regular","intro_on_current_branch":false},"20210816192041":{"version":20210816192041,"path":"db/migrate/20210816192041_add_invites_email_success_to_member.rb","name":"AddInvitesEmailSuccessToMember","type":"regular","intro_on_current_branch":false},"20220405181814":{"version":20220405181814,"path":"db/migrate/20220405181814_add_arkose_settings_to_application_settings.rb","name":"AddArkoseSettingsToApplicationSettings","type":"regular","intro_on_current_branch":false},"20210604034158":{"version":20210604034158,"path":"db/migrate/20210604034158_add_ci_build_id_fk_to_dast_site_profiles_builds.rb","name":"AddCiBuildIdFkToDastSiteProfilesBuilds","type":"regular","intro_on_current_branch":false},"20220120085655":{"version":20220120085655,"path":"db/migrate/20220120085655_add_ci_runner_project_index_to_runner_id_and_project_id.rb","name":"AddCiRunnerProjectIndexToRunnerIdAndProjectId","type":"regular","intro_on_current_branch":false},"20220111154951":{"version":20220111154951,"path":"db/migrate/20220111154951_add_index_to_ci_runners_token_expires_at.rb","name":"AddIndexToCiRunnersTokenExpiresAt","type":"regular","intro_on_current_branch":false},"20220614095912":{"version":20220614095912,"path":"db/migrate/20220614095912_add_has_vulnerabilities_to_cluster_agents.rb","name":"AddHasVulnerabilitiesToClusterAgents","type":"regular","intro_on_current_branch":false},"20211013080714":{"version":20211013080714,"path":"db/migrate/20211013080714_add_network_to_user_credit_card_validations.rb","name":"AddNetworkToUserCreditCardValidations","type":"regular","intro_on_current_branch":false},"20220511191502":{"version":20220511191502,"path":"db/migrate/20220511191502_add_registry_migration_guard_thresholds_to_application_settings.rb","name":"AddRegistryMigrationGuardThresholdsToApplicationSettings","type":"regular","intro_on_current_branch":false},"20211005112404":{"version":20211005112404,"path":"db/migrate/20211005112404_add_member_id_foreign_key_to_member_tasks.rb","name":"AddMemberIdForeignKeyToMemberTasks","type":"regular","intro_on_current_branch":false},"20210419203017":{"version":20210419203017,"path":"db/migrate/20210419203017_add_remote_import_url_to_import_export_upload.rb","name":"AddRemoteImportUrlToImportExportUpload","type":"regular","intro_on_current_branch":false},"20210912034903":{"version":20210912034903,"path":"db/migrate/20210912034903_add_runner_features_to_ci_builds_metadata.rb","name":"AddRunnerFeaturesToCiBuildsMetadata","type":"regular","intro_on_current_branch":false},"20211018101034":{"version":20211018101034,"path":"db/migrate/20211018101034_add_tmp_project_id_column_to_namespaces.rb","name":"AddTmpProjectIdColumnToNamespaces","type":"regular","intro_on_current_branch":false},"20210728174349":{"version":20210728174349,"path":"db/migrate/20210728174349_add_fk_to_security_scans_columns.rb","name":"AddFkToSecurityScansColumns","type":"regular","intro_on_current_branch":false},"20220303191047":{"version":20220303191047,"path":"db/migrate/20220303191047_add_text_limit_to_deployment_approvals_comment.rb","name":"AddTextLimitToDeploymentApprovalsComment","type":"regular","intro_on_current_branch":false},"20211124095704":{"version":20211124095704,"path":"db/migrate/20211124095704_add_draft_notes_line_code_text_limit.rb","name":"AddDraftNotesLineCodeTextLimit","type":"regular","intro_on_current_branch":false},"20220114131950":{"version":20220114131950,"path":"db/migrate/20220114131950_add_status_only_index_to_packages_package_files.rb","name":"AddStatusOnlyIndexToPackagesPackageFiles","type":"regular","intro_on_current_branch":false},"20210825104656":{"version":20210825104656,"path":"db/migrate/20210825104656_create_analytics_cycle_analytics_merge_request_stage_events.rb","name":"CreateAnalyticsCycleAnalyticsMergeRequestStageEvents","type":"regular","intro_on_current_branch":false},"20220902065611":{"version":20220902065611,"path":"db/migrate/20220902065611_add_partition_id_to_ci_job_artifacts.rb","name":"AddPartitionIdToCiJobArtifacts","type":"regular","intro_on_current_branch":false},"20220518183504":{"version":20220518183504,"path":"db/migrate/20220518183504_create_ssh_signatures.rb","name":"CreateSshSignatures","type":"regular","intro_on_current_branch":false},"20220914010233":{"version":20220914010233,"path":"db/migrate/20220914010233_change_members_namespace_foreign_key_on_delete_constraint.rb","name":"ChangeMembersNamespaceForeignKeyOnDeleteConstraint","type":"regular","intro_on_current_branch":false},"20210729202143":{"version":20210729202143,"path":"db/migrate/20210729202143_create_incident_management_issuable_escalation_statuses.rb","name":"CreateIncidentManagementIssuableEscalationStatuses","type":"regular","intro_on_current_branch":false},"20210722074309":{"version":20210722074309,"path":"db/migrate/20210722074309_add_user_fk_to_escalation_rules.rb","name":"AddUserFkToEscalationRules","type":"regular","intro_on_current_branch":false},"20210729161242":{"version":20210729161242,"path":"db/migrate/20210729161242_remove_foreign_keys_from_ci_test_case_failures.rb","name":"RemoveForeignKeysFromCiTestCaseFailures","type":"regular","intro_on_current_branch":false},"20220525082303":{"version":20220525082303,"path":"db/migrate/20220525082303_create_issuable_resource_links.rb","name":"CreateIssuableResourceLinks","type":"regular","intro_on_current_branch":false},"20220519141345":{"version":20220519141345,"path":"db/migrate/20220519141345_add_job_artifact_id_on_refresh_start_to_build_artifacts_size_refresh.rb","name":"AddJobArtifactIdOnRefreshStartToBuildArtifactsSizeRefresh","type":"regular","intro_on_current_branch":false},"20210531070452":{"version":20210531070452,"path":"db/migrate/20210531070452_default_enforce_ssh_key_expiration.rb","name":"DefaultEnforceSshKeyExpiration","type":"regular","intro_on_current_branch":false},"20210308175224":{"version":20210308175224,"path":"db/migrate/20210308175224_change_namespace_settings_delayed_project_removal_null.rb","name":"ChangeNamespaceSettingsDelayedProjectRemovalNull","type":"regular","intro_on_current_branch":false},"20210504143128":{"version":20210504143128,"path":"db/migrate/20210504143128_add_verification_state_and_started_at_to_mr_diff_details_table.rb","name":"AddVerificationStateAndStartedAtToMrDiffDetailsTable","type":"regular","intro_on_current_branch":false},"20211108154510":{"version":20211108154510,"path":"db/migrate/20211108154510_create_pipeline_triggers_application_limits.rb","name":"CreatePipelineTriggersApplicationLimits","type":"regular","intro_on_current_branch":false},"20220202115350":{"version":20220202115350,"path":"db/migrate/20220202115350_add_migration_indexes_to_container_repositories.rb","name":"AddMigrationIndexesToContainerRepositories","type":"regular","intro_on_current_branch":false},"20220301002101":{"version":20220301002101,"path":"db/migrate/20220301002101_add_security_orchestration_policy_configuration_namespace_reference.rb","name":"AddSecurityOrchestrationPolicyConfigurationNamespaceReference","type":"regular","intro_on_current_branch":false},"20210708124229":{"version":20210708124229,"path":"db/migrate/20210708124229_add_security_scans_created_at_index.rb","name":"AddSecurityScansCreatedAtIndex","type":"regular","intro_on_current_branch":false},"20210506150833":{"version":20210506150833,"path":"db/migrate/20210506150833_create_vulnerability_finding_evidence_headers.rb","name":"CreateVulnerabilityFindingEvidenceHeaders","type":"regular","intro_on_current_branch":false},"20220106230629":{"version":20220106230629,"path":"db/migrate/20220106230629_add_registry_migration_application_settings.rb","name":"AddRegistryMigrationApplicationSettings","type":"regular","intro_on_current_branch":false},"20210306121300":{"version":20210306121300,"path":"db/migrate/20210306121300_partition_web_hook_logs.rb","name":"PartitionWebHookLogs","type":"regular","intro_on_current_branch":false},"20211216133107":{"version":20211216133107,"path":"db/migrate/20211216133107_add_cluster_agent_id_to_vulnerability_reads.rb","name":"AddClusterAgentIdToVulnerabilityReads","type":"regular","intro_on_current_branch":false},"20220707105335":{"version":20220707105335,"path":"db/migrate/20220707105335_rename_chat_name_service_id_to_integration_id.rb","name":"RenameChatNameServiceIdToIntegrationId","type":"regular","intro_on_current_branch":false},"20210809194250":{"version":20210809194250,"path":"db/migrate/20210809194250_rename_tables_ci_build_trace_section.rb","name":"RenameTablesCiBuildTraceSection","type":"regular","intro_on_current_branch":false},"20210629031900":{"version":20210629031900,"path":"db/migrate/20210629031900_associate_existing_dast_builds_with_variables.rb","name":"AssociateExistingDastBuildsWithVariables","type":"regular","intro_on_current_branch":false},"20210721174411":{"version":20210721174411,"path":"db/migrate/20210721174411_add_is_removed_to_escalation_rules.rb","name":"AddIsRemovedToEscalationRules","type":"regular","intro_on_current_branch":false},"20210929032555":{"version":20210929032555,"path":"db/migrate/20210929032555_create_verification_codes.rb","name":"CreateVerificationCodes","type":"regular","intro_on_current_branch":false},"20211119194024":{"version":20211119194024,"path":"db/migrate/20211119194024_add_required_approval_count_to_protected_environments.rb","name":"AddRequiredApprovalCountToProtectedEnvironments","type":"regular","intro_on_current_branch":false},"20220329061545":{"version":20220329061545,"path":"db/migrate/20220329061545_add_repository_size_to_plan_limits.rb","name":"AddRepositorySizeToPlanLimits","type":"regular","intro_on_current_branch":false},"20220324173554":{"version":20220324173554,"path":"db/migrate/20220324173554_add_text_limit_to_public_git_lab_runner_releases_url_application_settings.rb","name":"AddTextLimitToPublicGitLabRunnerReleasesUrlApplicationSettings","type":"regular","intro_on_current_branch":false},"20210401134157":{"version":20210401134157,"path":"db/migrate/20210401134157_add_index_to_pages_deployments.rb","name":"AddIndexToPagesDeployments","type":"regular","intro_on_current_branch":false},"20210414131600":{"version":20210414131600,"path":"db/migrate/20210414131600_add_external_pipeline_validation_to_application_setting.rb","name":"AddExternalPipelineValidationToApplicationSetting","type":"regular","intro_on_current_branch":false},"20210603233011":{"version":20210603233011,"path":"db/migrate/20210603233011_regular_migration_with_five_second_query.rb","name":"RegularMigrationWithFiveSecondQuery","type":"regular","intro_on_current_branch":true},"20220318174439":{"version":20220318174439,"path":"db/migrate/20220318174439_queue_test_background_migration.rb","name":"QueueTestBackgroundMigration","type":"regular","intro_on_current_branch":true},"20220223163519":{"version":20220223163519,"path":"db/migrate/20220223163519_ensure_gitlab_com_in_migrations.rb","name":"EnsureGitlabComInMigrations","type":"regular","intro_on_current_branch":true},"20210915152743":{"version":20210915152743,"path":"db/migrate/20210915152743_migration_inherits_gitlab_database_migration.rb","name":"MigrationInheritsGitlabDatabaseMigration","type":"regular","intro_on_current_branch":true},"20210602144718":{"version":20210602144718,"path":"db/migrate/20210602144718_create_test_table.rb","name":"CreateTestTable","type":"regular","intro_on_current_branch":true},"20220922143612":{"version":20220922143612,"path":"db/migrate/20220922143612_add_inbound_ci_job_token_project_scope_links.rb","name":"AddInboundCiJobTokenProjectScopeLinks","type":"regular","intro_on_current_branch":false}} diff --git a/notifier/spec/result_spec.rb b/notifier/spec/result_spec.rb index 6c36fca2..a91cd7d5 100644 --- a/notifier/spec/result_spec.rb +++ b/notifier/spec/result_spec.rb @@ -5,7 +5,8 @@ require 'spec_helper' RSpec.describe Result do where(:fixture_root, :schema_version) do [ - ['v3', 3] + ['v3', 3], + ['v4', 4] ] end @@ -13,7 +14,7 @@ RSpec.describe Result do let(:root_testing_path) { file_fixture("migration-testing/#{fixture_root}") } let(:clone_details) { File.join(root_testing_path, "clone-details.json") } - subject(:result) { described_class.from_directory(root_testing_path) } + subject(:result) { MultiDbResult.from_directory(root_testing_path).per_db_results.values.first } it 'identifies the correct schema version' do expect(described_class.schema_version(root_testing_path)).to eq(schema_version) -- GitLab From 0e01b57dd394bf5a098b6e56f45a448e697bc970 Mon Sep 17 00:00:00 2001 From: Simon Tomlinson Date: Thu, 6 Oct 2022 12:19:39 -0500 Subject: [PATCH 03/10] wip need to push to generate fixture data --- notifier/query.rb | 2 +- notifier/spec/json_payload_spec.rb | 2 +- notifier/spec/{feedback_spec.rb => multi_db_feedback_spec.rb} | 4 ++-- notifier/spec/warnings_spec.rb | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) rename notifier/spec/{feedback_spec.rb => multi_db_feedback_spec.rb} (94%) diff --git a/notifier/query.rb b/notifier/query.rb index 69e3b719..1660fdb4 100644 --- a/notifier/query.rb +++ b/notifier/query.rb @@ -21,7 +21,7 @@ class Query end def formatted_query - Niceql::Prettifier.prettify_sql(query) + Niceql::Prettifier.prettify_sql(query, false) .gsub('/*', '/*') .gsub('*/', '*/') .gsub("\n", '
') diff --git a/notifier/spec/json_payload_spec.rb b/notifier/spec/json_payload_spec.rb index 6ca7ca3b..33c7d423 100644 --- a/notifier/spec/json_payload_spec.rb +++ b/notifier/spec/json_payload_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require "base64" RSpec.describe JsonPayload do - let(:result) { Result.from_directory(file_fixture('migration-testing/v3')) } + let(:result) { MultiDbResult.from_directory(file_fixture('migration-testing/v4')).per_db_results['main'] } subject do encoded = described_class.new.encode(result) diff --git a/notifier/spec/feedback_spec.rb b/notifier/spec/multi_db_feedback_spec.rb similarity index 94% rename from notifier/spec/feedback_spec.rb rename to notifier/spec/multi_db_feedback_spec.rb index 526d63dc..c91db01c 100644 --- a/notifier/spec/feedback_spec.rb +++ b/notifier/spec/multi_db_feedback_spec.rb @@ -1,12 +1,12 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe Feedback do +RSpec.describe MultiDbFeedback do # This is an end-to-end test based on the checked in fixtures # This is a temporary measure to increase our confidence in a change - we can remove # it if it gets tedious and we have smaller unit tests in place describe 'end to end test for rendering feedback comment' do - where(fixture_root: %w[v3 v4]) + where(fixture_root: %w[v4]) with_them do let(:result) { MultiDbResult.from_directory(file_fixture("migration-testing/#{fixture_root}")) } diff --git a/notifier/spec/warnings_spec.rb b/notifier/spec/warnings_spec.rb index f2ab9de0..f98612a8 100644 --- a/notifier/spec/warnings_spec.rb +++ b/notifier/spec/warnings_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' RSpec.describe Warnings do - let(:result) { Result.from_directory(file_fixture('migration-testing/v3')) } + let(:result) { MultiDbResult.from_directory(file_fixture('migration-testing/v4')).per_db_results['main'] } let(:migration) { result.migrations[20210604232017] } subject(:warnings) { described_class.new(result) } -- GitLab From 72d43841d27f8b4f489df1816b2429029e240916 Mon Sep 17 00:00:00 2001 From: Simon Tomlinson Date: Thu, 6 Oct 2022 14:50:58 -0500 Subject: [PATCH 04/10] patch for testing batched background migrations on main and ci --- ...esting-batched-background-migrations.patch | 81 +++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 docker/gitlab/patches/testing/040-Patch-for-testing-batched-background-migrations.patch diff --git a/docker/gitlab/patches/testing/040-Patch-for-testing-batched-background-migrations.patch b/docker/gitlab/patches/testing/040-Patch-for-testing-batched-background-migrations.patch new file mode 100644 index 00000000..974136e8 --- /dev/null +++ b/docker/gitlab/patches/testing/040-Patch-for-testing-batched-background-migrations.patch @@ -0,0 +1,81 @@ +From 19c21e7028da0437c7b2f891227eec808b45a0fb Mon Sep 17 00:00:00 2001 +From: Simon Tomlinson +Date: Thu, 6 Oct 2022 14:48:40 -0500 +Subject: [PATCH] Patch for testing batched background migrations + +--- + ..._test_batched_background_migration_main.rb | 16 ++++++++ + ...ue_test_batched_background_migration_ci.rb | 38 +++++++++++++++++++ + 2 files changed, 54 insertions(+) + create mode 100644 db/migrate/20221006193625_queue_test_batched_background_migration_main.rb + create mode 100644 db/migrate/20221006193710_queue_test_batched_background_migration_ci.rb + +diff --git a/db/migrate/20221006193625_queue_test_batched_background_migration_main.rb b/db/migrate/20221006193625_queue_test_batched_background_migration_main.rb +new file mode 100644 +index 000000000000..4f434dd230f9 +--- /dev/null ++++ b/db/migrate/20221006193625_queue_test_batched_background_migration_main.rb +@@ -0,0 +1,16 @@ ++# frozen_string_literal: true ++ ++class QueueTestBatchedBackgroundMigrationMain < Gitlab::Database::Migration[2.0] ++ restrict_gitlab_migration gitlab_schema: :gitlab_main ++ ++ def up ++ # Test background migration that sets created_at = updated_at for issues rows ++ queue_batched_background_migration( ++ 'CopyColumnUsingBackgroundMigrationJob', ++ :issues, ++ :id, ++ :updated_at, :created_at, ++ job_interval: 2.minutes ++ ) ++ end ++end +diff --git a/db/migrate/20221006193710_queue_test_batched_background_migration_ci.rb b/db/migrate/20221006193710_queue_test_batched_background_migration_ci.rb +new file mode 100644 +index 000000000000..7d2176cd3a30 +--- /dev/null ++++ b/db/migrate/20221006193710_queue_test_batched_background_migration_ci.rb +@@ -0,0 +1,38 @@ ++# frozen_string_literal: true ++ ++# See https://docs.gitlab.com/ee/development/migration_style_guide.html ++# for more information on how to write migrations for GitLab. ++ ++class QueueTestBatchedBackgroundMigrationCi < Gitlab::Database::Migration[2.0] ++ # When using the methods "add_concurrent_index" or "remove_concurrent_index" ++ # you must disable the use of transactions ++ # as these methods can not run in an existing transaction. ++ # When using "add_concurrent_index" or "remove_concurrent_index" methods make sure ++ # that either of them is the _only_ method called in the migration, ++ # any other changes should go in a separate migration. ++ # This ensures that upon failure _only_ the index creation or removing fails ++ # and can be retried or reverted easily. ++ # ++ # To disable transactions uncomment the following line and remove these ++ # comments: ++ # disable_ddl_transaction! ++ # ++ # Configure the `gitlab_schema` to perform data manipulation (DML). ++ # Visit: https://docs.gitlab.com/ee/development/database/migrations_for_multiple_databases.html ++ # restrict_gitlab_migration gitlab_schema: :gitlab_main ++ ++ def change ++ def up ++ # Test background migration that sets created_at = updated_at for ci_runner_projects rows ++ # ci_runner_projects was chosen as a CI table that's not likely to be partitioned in the future, but we may need ++ # to change this test if that changes ++ queue_batched_background_migration( ++ 'CopyColumnUsingBackgroundMigrationJob', ++ :ci_runner_projects, ++ :id, ++ :updated_at, :created_at, ++ job_interval: 2.minutes ++ ) ++ end ++ end ++end +-- +2.37.1 + -- GitLab From 645e643cdbe5fd0a208edaca4a48ab3fba4b3c5d Mon Sep 17 00:00:00 2001 From: Simon Tomlinson Date: Thu, 6 Oct 2022 15:19:23 -0500 Subject: [PATCH 05/10] actually run the ci migration on the ci database --- ...esting-batched-background-migrations.patch | 20 +------------------ 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/docker/gitlab/patches/testing/040-Patch-for-testing-batched-background-migrations.patch b/docker/gitlab/patches/testing/040-Patch-for-testing-batched-background-migrations.patch index 974136e8..c21f4bab 100644 --- a/docker/gitlab/patches/testing/040-Patch-for-testing-batched-background-migrations.patch +++ b/docker/gitlab/patches/testing/040-Patch-for-testing-batched-background-migrations.patch @@ -40,26 +40,8 @@ index 000000000000..7d2176cd3a30 @@ -0,0 +1,38 @@ +# frozen_string_literal: true + -+# See https://docs.gitlab.com/ee/development/migration_style_guide.html -+# for more information on how to write migrations for GitLab. -+ +class QueueTestBatchedBackgroundMigrationCi < Gitlab::Database::Migration[2.0] -+ # When using the methods "add_concurrent_index" or "remove_concurrent_index" -+ # you must disable the use of transactions -+ # as these methods can not run in an existing transaction. -+ # When using "add_concurrent_index" or "remove_concurrent_index" methods make sure -+ # that either of them is the _only_ method called in the migration, -+ # any other changes should go in a separate migration. -+ # This ensures that upon failure _only_ the index creation or removing fails -+ # and can be retried or reverted easily. -+ # -+ # To disable transactions uncomment the following line and remove these -+ # comments: -+ # disable_ddl_transaction! -+ # -+ # Configure the `gitlab_schema` to perform data manipulation (DML). -+ # Visit: https://docs.gitlab.com/ee/development/database/migrations_for_multiple_databases.html -+ # restrict_gitlab_migration gitlab_schema: :gitlab_main ++ restrict_gitlab_migration gitlab_schema: :gitlab_ci + + def change + def up -- GitLab From 257f012b19953698cd67d723f82734ab4e71b823 Mon Sep 17 00:00:00 2001 From: Simon Tomlinson Date: Tue, 11 Oct 2022 13:49:30 -0500 Subject: [PATCH 06/10] fix the patch --- ...esting-batched-background-migrations.patch | 52 +++++++++---------- 1 file changed, 25 insertions(+), 27 deletions(-) diff --git a/docker/gitlab/patches/testing/040-Patch-for-testing-batched-background-migrations.patch b/docker/gitlab/patches/testing/040-Patch-for-testing-batched-background-migrations.patch index c21f4bab..050f2212 100644 --- a/docker/gitlab/patches/testing/040-Patch-for-testing-batched-background-migrations.patch +++ b/docker/gitlab/patches/testing/040-Patch-for-testing-batched-background-migrations.patch @@ -1,20 +1,20 @@ -From 19c21e7028da0437c7b2f891227eec808b45a0fb Mon Sep 17 00:00:00 2001 +From ae029ff2254271707b7325485853fd5b09100c9c Mon Sep 17 00:00:00 2001 From: Simon Tomlinson -Date: Thu, 6 Oct 2022 14:48:40 -0500 +Date: Tue, 11 Oct 2022 13:47:43 -0500 Subject: [PATCH] Patch for testing batched background migrations --- - ..._test_batched_background_migration_main.rb | 16 ++++++++ - ...ue_test_batched_background_migration_ci.rb | 38 +++++++++++++++++++ - 2 files changed, 54 insertions(+) - create mode 100644 db/migrate/20221006193625_queue_test_batched_background_migration_main.rb - create mode 100644 db/migrate/20221006193710_queue_test_batched_background_migration_ci.rb + ...e_test_batched_background_migration_main.rb | 16 ++++++++++++++++ + ...eue_test_batched_background_migration_ci.rb | 18 ++++++++++++++++++ + 2 files changed, 34 insertions(+) + create mode 100644 db/migrate/20221011184436_queue_test_batched_background_migration_main.rb + create mode 100644 db/migrate/20221011184500_queue_test_batched_background_migration_ci.rb -diff --git a/db/migrate/20221006193625_queue_test_batched_background_migration_main.rb b/db/migrate/20221006193625_queue_test_batched_background_migration_main.rb +diff --git a/db/migrate/20221011184436_queue_test_batched_background_migration_main.rb b/db/migrate/20221011184436_queue_test_batched_background_migration_main.rb new file mode 100644 -index 000000000000..4f434dd230f9 +index 000000000000..1b56e6bf4f23 --- /dev/null -+++ b/db/migrate/20221006193625_queue_test_batched_background_migration_main.rb ++++ b/db/migrate/20221011184436_queue_test_batched_background_migration_main.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + @@ -25,37 +25,35 @@ index 000000000000..4f434dd230f9 + # Test background migration that sets created_at = updated_at for issues rows + queue_batched_background_migration( + 'CopyColumnUsingBackgroundMigrationJob', -+ :issues, -+ :id, -+ :updated_at, :created_at, -+ job_interval: 2.minutes ++ :issues, ++ :id, ++ :updated_at, :created_at, ++ job_interval: 2.minutes + ) + end +end -diff --git a/db/migrate/20221006193710_queue_test_batched_background_migration_ci.rb b/db/migrate/20221006193710_queue_test_batched_background_migration_ci.rb +diff --git a/db/migrate/20221011184500_queue_test_batched_background_migration_ci.rb b/db/migrate/20221011184500_queue_test_batched_background_migration_ci.rb new file mode 100644 -index 000000000000..7d2176cd3a30 +index 000000000000..d31f3f594194 --- /dev/null -+++ b/db/migrate/20221006193710_queue_test_batched_background_migration_ci.rb -@@ -0,0 +1,38 @@ ++++ b/db/migrate/20221011184500_queue_test_batched_background_migration_ci.rb +@@ -0,0 +1,18 @@ +# frozen_string_literal: true + +class QueueTestBatchedBackgroundMigrationCi < Gitlab::Database::Migration[2.0] + restrict_gitlab_migration gitlab_schema: :gitlab_ci + -+ def change -+ def up -+ # Test background migration that sets created_at = updated_at for ci_runner_projects rows -+ # ci_runner_projects was chosen as a CI table that's not likely to be partitioned in the future, but we may need -+ # to change this test if that changes -+ queue_batched_background_migration( -+ 'CopyColumnUsingBackgroundMigrationJob', ++ def up ++ # Test background migration that sets created_at = updated_at for ci_runner_projects rows ++ # ci_runner_projects was chosen as a CI table that's not likely to be partitioned in the future, but we may need ++ # to change this test if that changes ++ queue_batched_background_migration( ++ 'CopyColumnUsingBackgroundMigrationJob', + :ci_runner_projects, + :id, + :updated_at, :created_at, + job_interval: 2.minutes -+ ) -+ end ++ ) + end +end -- -- GitLab From 2313a10234c655da678680cf9c02a77e2d1e1693 Mon Sep 17 00:00:00 2001 From: Simon Tomlinson Date: Tue, 11 Oct 2022 14:26:19 -0500 Subject: [PATCH 07/10] wip fix more tests and try to fix statement timeout --- ...esting-batched-background-migrations.patch | 4 ++-- .../spec/fixtures/migration-testing/.DS_Store | Bin 6148 -> 0 bytes notifier/spec/result_spec.rb | 18 ++++++++++-------- 3 files changed, 12 insertions(+), 10 deletions(-) delete mode 100644 notifier/spec/fixtures/migration-testing/.DS_Store diff --git a/docker/gitlab/patches/testing/040-Patch-for-testing-batched-background-migrations.patch b/docker/gitlab/patches/testing/040-Patch-for-testing-batched-background-migrations.patch index 050f2212..6ed1a42d 100644 --- a/docker/gitlab/patches/testing/040-Patch-for-testing-batched-background-migrations.patch +++ b/docker/gitlab/patches/testing/040-Patch-for-testing-batched-background-migrations.patch @@ -28,7 +28,7 @@ index 000000000000..1b56e6bf4f23 + :issues, + :id, + :updated_at, :created_at, -+ job_interval: 2.minutes ++ job_interval: 2.minutes, batch_size: 10, sub_batch_size: 5 + ) + end +end @@ -52,7 +52,7 @@ index 000000000000..d31f3f594194 + :ci_runner_projects, + :id, + :updated_at, :created_at, -+ job_interval: 2.minutes ++ job_interval: 2.minutes, batch_size: 10, sub_batch_size: 5 + ) + end +end diff --git a/notifier/spec/fixtures/migration-testing/.DS_Store b/notifier/spec/fixtures/migration-testing/.DS_Store deleted file mode 100644 index 1bc70c461fb119a37a0bae4a7a76f835ea5496e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmZQzU|@7AO)+F(5MW?n;9!8z4DAe90Z1N%F(jFwA|RR(Y(^qO2}34BK0_XZE>w;X z1=1_bkjs$Ckj_xVfULiSA(f#RY+fEiI)eg(QA%-gPEvk;4#-F*hB5|YWC4)iC>{-g z(GVC7fzc2c4S~@RARGdW5G5Sk5PFmx4S~@R7!3h<2!P551yEmsfq}sRN;g1gkQ4(W z0|Th}4x(9LnjrlE29Ov?D~JYZ1<@d_42&Qa*bJ~%21W*mRz`3)1f&ntB>~Z3?F@`y zn?ZcAb_PbU%?u2T5bX?%5bX?%&>jjSL^}f`L^}f`*mjufM(NQI7!3hf2rxq!0-*Ze zm4N|Q{~w}ilpGC#(GVDxA;8Gu671pxu9UI+4^-EJ>eB=yX+}_;4ABFU2370es+b8f kpeO-T%E-U~(h8CXSH+AB4B(o4v>^Zsp;3A?1n3_E09_Ot!T Date: Fri, 21 Oct 2022 08:36:50 -0500 Subject: [PATCH 08/10] Fix warnings_spec.rb --- notifier/spec/warnings_spec.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/notifier/spec/warnings_spec.rb b/notifier/spec/warnings_spec.rb index f98612a8..07a08c05 100644 --- a/notifier/spec/warnings_spec.rb +++ b/notifier/spec/warnings_spec.rb @@ -24,13 +24,12 @@ RSpec.describe Warnings do expect(subject.render).to include('did not complete') expect(subject.render).to include('[background migration]') - expect(subject.render).to include('[post-deploy migration]') expect(subject.render).to include('(`@gitlab-org/release/managers`)') expect(subject.render).to include('222.49') end it 'excludes migrations not introduced on current branch' do - excluded_name = 'UnrelatedMigration' + excluded_name = 'TmpIdxNullMemberNamespaceId' expect(result.other_migrations.map(&:name)).to include(excluded_name) expect(subject.render).not_to include(excluded_name) end -- GitLab From c5d1383dbb341ac6c3ca919b6de6e873d888a0fc Mon Sep 17 00:00:00 2001 From: Jon Jenkins Date: Fri, 21 Oct 2022 08:39:36 -0500 Subject: [PATCH 09/10] fix linting --- notifier/multi_db_feedback.rb | 1 - notifier/multi_db_result.rb | 4 ---- notifier/result.rb | 3 --- notifier/spec/multi_db_feedback_spec.rb | 2 +- notifier/spec/result_spec.rb | 4 +++- 5 files changed, 4 insertions(+), 10 deletions(-) diff --git a/notifier/multi_db_feedback.rb b/notifier/multi_db_feedback.rb index 74e6dbf8..b21c1916 100644 --- a/notifier/multi_db_feedback.rb +++ b/notifier/multi_db_feedback.rb @@ -1,7 +1,6 @@ # frozen_string_literal: true class MultiDbFeedback - attr_reader :multi_db_result def initialize(multi_db_result) diff --git a/notifier/multi_db_result.rb b/notifier/multi_db_result.rb index ac43084e..b362ab50 100644 --- a/notifier/multi_db_result.rb +++ b/notifier/multi_db_result.rb @@ -26,8 +26,6 @@ class MultiDbResult @per_db_results = per_db_results end - private - def self.per_database_path_parts(database_testing_path) metadata_files = Dir.glob(File.join(database_testing_path, '**/up/metadata.json')) metadata_files.to_h do |f| @@ -47,9 +45,7 @@ class MultiDbResult end end - def self.read_to_json(path) JSON.parse(File.read(path)) end - end diff --git a/notifier/result.rb b/notifier/result.rb index fd4f642c..f48ad497 100644 --- a/notifier/result.rb +++ b/notifier/result.rb @@ -5,7 +5,6 @@ require 'json' class Result def self.from_directory(database_testing_path, global_migration_data, clone_details) - query_details_path = File.join(database_testing_path, 'up') background_migrations_path = File.join(database_testing_path, 'background_migrations') @@ -48,8 +47,6 @@ class Result sorted_migrations.reject(&:intro_on_current_branch) end - - def self.read_stats_legacy(stats_file) read_to_json(stats_file).index_by { |s| s['version'] } end diff --git a/notifier/spec/multi_db_feedback_spec.rb b/notifier/spec/multi_db_feedback_spec.rb index c91db01c..5d23415b 100644 --- a/notifier/spec/multi_db_feedback_spec.rb +++ b/notifier/spec/multi_db_feedback_spec.rb @@ -13,7 +13,7 @@ RSpec.describe MultiDbFeedback do let(:expected_comment_file) { file_fixture("migration-testing/#{fixture_root}/expected-comment.txt") } - subject { MultiDbFeedback.new(result).render } + subject { described_class.new(result).render } before do override_env_from_fixture('migration-testing/environment.json') diff --git a/notifier/spec/result_spec.rb b/notifier/spec/result_spec.rb index 739f2dc7..cac7964b 100644 --- a/notifier/spec/result_spec.rb +++ b/notifier/spec/result_spec.rb @@ -23,7 +23,9 @@ RSpec.describe Result do it 'loads clone details' do detail_names = result.clone_details.map(&:cloneId) - expect(detail_names).to contain_exactly( "database-testing-1448027-8121647-main","database-testing-1448027-8121647-ci" ) + expect(detail_names).to contain_exactly( + "database-testing-1448027-8121647-main", "database-testing-1448027-8121647-ci" + ) end it 'loads migrations' do -- GitLab From fda2cec119c94eb6ad2b11c26c59ab73ecdac0ba Mon Sep 17 00:00:00 2001 From: Jon Jenkins Date: Fri, 21 Oct 2022 14:27:04 -0500 Subject: [PATCH 10/10] Remove DS_Store directories --- .DS_Store | Bin 8196 -> 0 bytes notifier/.DS_Store | Bin 6148 -> 0 bytes notifier/spec/.DS_Store | Bin 6148 -> 0 bytes notifier/spec/fixtures/.DS_Store | Bin 6148 -> 0 bytes 4 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .DS_Store delete mode 100644 notifier/.DS_Store delete mode 100644 notifier/spec/.DS_Store delete mode 100644 notifier/spec/fixtures/.DS_Store diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 40e0075fe190f3720b5b3b925754d950971bb00e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8196 zcmZQzU|@7AO)+F(kYHe7;9!8z0^AH(0Z1N%F(jFwA}k>D7#IW?7}6Lr8B!UFlFEw< zpmL+sXb6mkz-S1JhQMeDjE2DA3IRrlb2xC+`w-btax?@+LtsRP0H}OWfVAxy9H4Xq zga%15FfuTJy8w&~44^ImIE)y<{Qw4#97rpO25AM+Agv6HAQspRuvP{}s8&XBHw2_l z0BR0cI|C!wW{@~oI|C!wW(EdEh;{}>sLhPf9ttBwI|Cy`I|C!wcCeA7#ApbNh5%X! zfU*wxNzBYkEdnVC&P+*7N-T;A&&*57FL%l> z%}Xf;>xD{iaB^_Q3rJK~n^+p^D3}10ho}8aknwwV~FCdtln3G(ZlUS1Kn3EHn zS(RE0Qk`6spOX`iUz`atCNiQVwW0(hhanXaRh(Z`;tVz{UO=Fa-o~X=})Vz|+w9M3^ z$i(90)V!3;y!6oW%#@Oh@UqO}%%q&uki5j)R8B!g9nLHK5|UEVGP1G|1qcl=r4gk` znT4g9C6xlo92{Uf6l9fnVp0-IQhoDNK(?fC2yEp9%c#mK$wq@@oQqNuOHxyy8Z>3K zc|wXat5P`x5+Mrpcno+#vNQ8iI0cF!BE~$XvY|PNNvS!U0x1xCEO@MB!^9fKiWsUH zdKqRgtY+B4aFpQ~!&QcR3@;fzGyG&^WMpGxXXIk!W)xwRVpL(&VKiklXS86nWOQQm zXAEErVhm=CVa#C6WXxhLW~^YWWUOYaVQgjWV(ez@W$a^|&N!EG9^(SWg^a5hH!*Hz z+{(C(aX;e;#*>Vv7%wwEVtmZ_l<^tkd&XakzZw59u`-D>Niaz=DKY6V=`!gtnKM~1 zSut5N`7!x3MKC2YWijP5L5K91pfxZcq3gB!3gr9+lxhPYe;)c<#7V8Av0 z4^cHrj)uT!2n@>*U}SL#c5%W}rh)p}p#F3M)cc?o0H{082 diff --git a/notifier/.DS_Store b/notifier/.DS_Store deleted file mode 100644 index 5ddb0f2cda22095ba0bfa20338848041fe62e0e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmZQzU|@7AO)+F(5MW?n;9!8zj35RBCIAV8Fop~hR0Kpbg3L%NFD^*R$xmWnVAuhb z8|)Ow?JNw%3rD%)-jX&cV*X%@G@%kzXEMl2}q&?37p( z4dR95=jSBB*ojGDnW^RR0wT`&c_oRNd8tJpCBc~~sY!`NG2xkcDf#72`K5U&#bCWq z2@XyU&UgWd>S_~9LmdSZL$g{Pg=$M9104kuW3$>?P7YCJee0n3?3~=Z{4PjdS4fYA^b z4FU8J0F@64(6*xklx~2~ASnh$1_n^`8AP+d^n&{V5H%pJAUTj$5Dn7GzzAZ2<-uAR z7#Sd18NuBU1_nlOmjpzEwKFg>fVDF)GJv%+z#6`c5bX?%5bX@G&I==`M*}h+qMd;e zq8;YEQF=54MneD^0?ZIv0960GGQhJCM0AuK4S~@R7!e`B$l?<0;smNRad;P0*MjQP z1gJcy_J>r*po$u`5x@i)P?Ufw1y%PTtsoj)6*DqGYVy&B04#(?>Cq6Ne+U2o3KU9J diff --git a/notifier/spec/.DS_Store b/notifier/spec/.DS_Store deleted file mode 100644 index c7c4560793b6e550a6ba24ce70871f875fcf0cb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmZQzU|@7AO)+F(5MW?n;9!8z3~dZp0Z1N%F(jFwB8(vOz-E*(6fvYS6sHs?=RoBM zQ6Rk>3~3CR3>6F|3`qKu^7C^*l7tKxl^+d((GVC7fzc2c4S~@RASnc()hh=#NxDWA zkA}c#2#kaf0F@64khVR81C(xn&>$%WMg|6O7l4t0fdv*GjNpC%14s^}6-0xyf@qLd z21XDIYz9~>10z%`Be)v^(g*62fM~FG21c;WAU;?-10&dG1_nlmb_PbM&5Y0<3L`{2 z10zH`10&dWnCnLA(GVC70ayqyLl^>}`rnm-0ayPYqH2^J4S~@R7?vTx$l?<0;smag zvHK5H*MjQP1gM$=P-TpudKn@HQUa>l!PPMnWKdB8sthC!(hj1*)iEOj1GqLHZ4AId MXp|le0s4jj03Ht&$N&HU diff --git a/notifier/spec/fixtures/.DS_Store b/notifier/spec/fixtures/.DS_Store deleted file mode 100644 index 6aba0e6dc72d8dfb241d4846fb855f1e11312c49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmZQzU|@7AO)+F(5MW?n;9!8z3~dZp0Z1N%F(jFwB8(vOz-A;elrUs6D` zBSbp`Bh+R_Xb*)EqMd;eqMd;eY&*<#qx5J9jD`R#1ehTV0Z{$#%D{lD{|`|$N{)uW zXb23;5MX3+33hP;SIXG^2dZm9^=SfB%>k$~Mo_&B5d$d!Rqf#Fm