diff options
author | Andreas Brandl <abrandl@gitlab.com> | 2018-05-17 11:28:41 +0300 |
---|---|---|
committer | Andreas Brandl <abrandl@gitlab.com> | 2018-05-21 18:56:57 +0300 |
commit | a0c79f9d7025872fc2aa91805058739b26093989 (patch) | |
tree | e8354b8ade6d2b5a18482ff5951709ec4c3d2120 /db/migrate/20180517082340_add_not_null_constraints_to_project_authorizations.rb | |
parent | 7e78eacd2a302ac36d09f5170fb9e12ff61c56b4 (diff) |
Add NOT NULL constraints to project_authorizations.
Closes #32258.
Diffstat (limited to 'db/migrate/20180517082340_add_not_null_constraints_to_project_authorizations.rb')
-rw-r--r-- | db/migrate/20180517082340_add_not_null_constraints_to_project_authorizations.rb | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/db/migrate/20180517082340_add_not_null_constraints_to_project_authorizations.rb b/db/migrate/20180517082340_add_not_null_constraints_to_project_authorizations.rb new file mode 100644 index 00000000000..3b7b877232b --- /dev/null +++ b/db/migrate/20180517082340_add_not_null_constraints_to_project_authorizations.rb @@ -0,0 +1,38 @@ +class AddNotNullConstraintsToProjectAuthorizations < ActiveRecord::Migration + include Gitlab::Database::MigrationHelpers + + # Set this constant to true if this migration requires downtime. + DOWNTIME = false + + def up + if Gitlab::Database.postgresql? + # One-pass version for PostgreSQL + execute <<~SQL + ALTER TABLE project_authorizations + ALTER COLUMN user_id SET NOT NULL, + ALTER COLUMN project_id SET NOT NULL, + ALTER COLUMN access_level SET NOT NULL + SQL + else + change_column_null :project_authorizations, :user_id, false + change_column_null :project_authorizations, :project_id, false + change_column_null :project_authorizations, :access_level, false + end + end + + def down + if Gitlab::Database.postgresql? + # One-pass version for PostgreSQL + execute <<~SQL + ALTER TABLE project_authorizations + ALTER COLUMN user_id DROP NOT NULL, + ALTER COLUMN project_id DROP NOT NULL, + ALTER COLUMN access_level DROP NOT NULL + SQL + else + change_column_null :project_authorizations, :user_id, true + change_column_null :project_authorizations, :project_id, true + change_column_null :project_authorizations, :access_level, true + end + end +end |