Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/db
diff options
context:
space:
mode:
authorTimothy Andrew <mail@timothyandrew.net>2016-12-16 12:27:09 +0300
committerTimothy Andrew <mail@timothyandrew.net>2016-12-16 13:59:33 +0300
commiteb434b15ebbc7d0b7ed79bb2daa45601e3c918ca (patch)
treea330170c76712062822eaa33dee87658370dbe00 /db
parent5becbe2495850923604c71b4c807666ea94819b3 (diff)
Make `ChangePersonalAccessTokensDefaultBackToEmptyArray` a "post" migration.
If we leave this as a regular migration, we could have the following flow: 1. Application knows nothing about scopes. 2. First migration runs, all existing personal access tokens have `api` scope 3. Application still knows nothing about scopes. 4. Second migration runs, all tokens created after this point have no scope 5. Application still knows nothing about scopes. 6. Tokens created at this time _should have the API scope, but instead have no scope_ 7. Application code is reloaded, application knows about scopes 8. Tokens created after this point only have no scope if the user deliberately chooses to have no scopes. Point #6 is the problem here. To avoid this, we move the second migration to a "post" migration, which runs after the application code is deployed/reloaded.
Diffstat (limited to 'db')
-rw-r--r--db/post_migrate/20160824121037_change_personal_access_tokens_default_back_to_empty_array.rb (renamed from db/migrate/20160824121037_change_personal_access_tokens_default_back_to_empty_array.rb)6
1 files changed, 4 insertions, 2 deletions
diff --git a/db/migrate/20160824121037_change_personal_access_tokens_default_back_to_empty_array.rb b/db/post_migrate/20160824121037_change_personal_access_tokens_default_back_to_empty_array.rb
index c8ceb116b8a..7df561d82dd 100644
--- a/db/migrate/20160824121037_change_personal_access_tokens_default_back_to_empty_array.rb
+++ b/db/post_migrate/20160824121037_change_personal_access_tokens_default_back_to_empty_array.rb
@@ -1,6 +1,8 @@
# The default needs to be `[]`, but all existing access tokens need to have `scopes` set to `['api']`.
-# It's easier to achieve this by adding the column with the `['api']` default, and then changing the default to
-# `[]`.
+# It's easier to achieve this by adding the column with the `['api']` default (regular migration), and
+# then changing the default to `[]` (in this post-migration).
+#
+# Details: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5951#note_19721973
class ChangePersonalAccessTokensDefaultBackToEmptyArray < ActiveRecord::Migration
include Gitlab::Database::MigrationHelpers