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 | |
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')
-rw-r--r-- | db/migrate/20171229225929_change_user_project_limit_not_null_and_remove_default.rb | 38 | ||||
-rw-r--r-- | db/schema.rb | 4 |
2 files changed, 40 insertions, 2 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 diff --git a/db/schema.rb b/db/schema.rb index aa5db5da4f0..a41979876ec 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20171220191323) do +ActiveRecord::Schema.define(version: 20171229225929) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -1805,7 +1805,7 @@ ActiveRecord::Schema.define(version: 20171220191323) do t.datetime "updated_at" t.string "name" t.boolean "admin", default: false, null: false - t.integer "projects_limit", default: 10 + t.integer "projects_limit", null: false t.string "skype", default: "", null: false t.string "linkedin", default: "", null: false t.string "twitter", default: "", null: false |