diff options
| author | Mario de la Ossa <mariodelaossa@gmail.com> | 2017-12-29 17:36:57 -0600 |
|---|---|---|
| committer | Mario de la Ossa <mariodelaossa@gmail.com> | 2017-12-30 14:33:49 -0600 |
| commit | 75cf5f5b548c6e6df47eff721a31cd70fe202451 (patch) | |
| tree | f3e5dcb51c4db54ff29a40ec87df51e83a66c4d7 /db/migrate | |
| parent | 1b447b1642b4a1b91e595d319d7d90f2b43515ef (diff) | |
| download | gitlab-ce-75cf5f5b548c6e6df47eff721a31cd70fe202451.tar.gz | |
User#projects_limit remove DB default and added NOT NULL constraint
This change is required because otherwise if a user is created with a
value for `projects_limit` that matches the DB default, it gets
overwritten by `current_application_settings.default_projects_limit`. By
removing the default we once again can allow a user to be created with a
limit of 10 projects without the risk that it'll change to 10000
Diffstat (limited to 'db/migrate')
| -rw-r--r-- | db/migrate/20171229225929_change_user_project_limit_not_null_and_remove_default.rb | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/db/migrate/20171229225929_change_user_project_limit_not_null_and_remove_default.rb b/db/migrate/20171229225929_change_user_project_limit_not_null_and_remove_default.rb new file mode 100644 index 00000000000..54fbbcf1a0d --- /dev/null +++ b/db/migrate/20171229225929_change_user_project_limit_not_null_and_remove_default.rb @@ -0,0 +1,38 @@ +# See http://doc.gitlab.com/ce/development/migration_style_guide.html +# for more information on how to write migrations for GitLab. + +class ChangeUserProjectLimitNotNullAndRemoveDefault < ActiveRecord::Migration + include Gitlab::Database::MigrationHelpers + + # Set this constant to true if this migration requires downtime. + DOWNTIME = false + + # When a migration requires downtime you **must** uncomment the following + # constant and define a short and easy to understand explanation as to why the + # migration requires downtime. + # DOWNTIME_REASON = '' + + # When using the methods "add_concurrent_index", "remove_concurrent_index" or + # "add_column_with_default" 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! + + def up + # Set Users#projects_limit to NOT NULL and remove the default value + change_column_null :users, :projects_limit, false + change_column_default :users, :projects_limit, nil + end + + def down + change_column_null :users, :projects_limit, true + change_column_default :users, :projects_limit, 10 + end +end |
