diff options
author | James Lopez <james@jameslopez.es> | 2017-04-19 10:15:35 +0200 |
---|---|---|
committer | James Lopez <james@jameslopez.es> | 2017-04-19 10:15:35 +0200 |
commit | 1c6710e235e00d74b33c3712e2a981a8891d2a82 (patch) | |
tree | fce0d8e3cac774dca606f1e54c26d97648050057 /db | |
parent | ec9f6180bc4684521444ee0681308bf4c9c71297 (diff) | |
download | gitlab-ce-1c6710e235e00d74b33c3712e2a981a8891d2a82.tar.gz |
Add migration to remove orphaned notification settings
Diffstat (limited to 'db')
-rw-r--r-- | db/migrate/20170418103908_delete_orphan_notification_settings.rb | 24 | ||||
-rw-r--r-- | db/schema.rb | 2 |
2 files changed, 25 insertions, 1 deletions
diff --git a/db/migrate/20170418103908_delete_orphan_notification_settings.rb b/db/migrate/20170418103908_delete_orphan_notification_settings.rb new file mode 100644 index 00000000000..e4b9cf65936 --- /dev/null +++ b/db/migrate/20170418103908_delete_orphan_notification_settings.rb @@ -0,0 +1,24 @@ +class DeleteOrphanNotificationSettings < ActiveRecord::Migration + DOWNTIME = false + + def up + execute("DELETE FROM notification_settings WHERE EXISTS (SELECT true FROM (#{orphan_notification_settings}) AS ns WHERE ns.id = notification_settings.id)") + end + + def down + # This is a no-op method to make the migration reversible. + # If someone is trying to rollback for other reasons, we should not throw an Exception. + # raise ActiveRecord::IrreversibleMigration + end + + def orphan_notification_settings + <<-SQL + SELECT notification_settings.id + FROM notification_settings + LEFT OUTER JOIN namespaces + ON namespaces.id = notification_settings.source_id + WHERE notification_settings.source_type = 'Namespace' + AND namespaces.id IS NULL + SQL + end +end diff --git a/db/schema.rb b/db/schema.rb index 5689f7331dc..26ec6367bd0 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: 20170408033905) do +ActiveRecord::Schema.define(version: 20170418103908) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" |