39 lines
1.2 KiB
Ruby
39 lines
1.2 KiB
Ruby
class AddNotNullConstraintsToProjectAuthorizations < ActiveRecord::Migration[4.2]
|
|
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
|