debian-mirror-gitlab/db/migrate/20180517082340_add_not_null_constraints_to_project_authorizations.rb

39 lines
1.2 KiB
Ruby
Raw Normal View History

2019-02-15 15:39:39 +05:30
class AddNotNullConstraintsToProjectAuthorizations < ActiveRecord::Migration[4.2]
2018-11-08 19:23:39 +05:30
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