28 lines
1 KiB
Ruby
28 lines
1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
class CreateEnvironmentForSelfMonitoringProject < ActiveRecord::Migration[6.0]
|
|
DOWNTIME = false
|
|
|
|
def up
|
|
execute <<~SQL
|
|
INSERT INTO environments (project_id, name, slug, created_at, updated_at)
|
|
SELECT instance_administration_project_id, 'production', 'production', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
|
|
FROM application_settings
|
|
WHERE instance_administration_project_id IS NOT NULL
|
|
AND NOT EXISTS (
|
|
SELECT 1
|
|
FROM environments
|
|
INNER JOIN application_settings
|
|
ON application_settings.instance_administration_project_id = environments.project_id
|
|
)
|
|
SQL
|
|
end
|
|
|
|
def down
|
|
# no-op
|
|
|
|
# This migration cannot be reversed because it cannot be ensured that the environment for the Self Monitoring Project
|
|
# did not already exist before the migration ran - in that case, the migration does nothing, and it would be unexpected
|
|
# behavior for that environment to be deleted by reversing this migration.
|
|
end
|
|
end
|