diff options
author | Mayra Cabrera <mcabrera@gitlab.com> | 2018-03-07 15:44:33 -0600 |
---|---|---|
committer | Mayra Cabrera <mcabrera@gitlab.com> | 2018-03-07 15:45:50 -0600 |
commit | 3d4cfad43793d7055acdceec95477879b64e666b (patch) | |
tree | a06c779afe606ee82cc5888f96bfd1b37aab626e /db/migrate | |
parent | e9657acfc3433ea98a48d90312160e2e9cc8b173 (diff) | |
download | gitlab-ce-3d4cfad43793d7055acdceec95477879b64e666b.tar.gz |
Ensure orphaned rows are deleted before adding the foreign key43802-ensure-foreign-keys-on-clusters-applications
Diffstat (limited to 'db/migrate')
-rw-r--r-- | db/migrate/20180302152117_ensure_foreign_keys_on_clusters_applications.rb | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/db/migrate/20180302152117_ensure_foreign_keys_on_clusters_applications.rb b/db/migrate/20180302152117_ensure_foreign_keys_on_clusters_applications.rb index 4c2c242c01a..8298979e96a 100644 --- a/db/migrate/20180302152117_ensure_foreign_keys_on_clusters_applications.rb +++ b/db/migrate/20180302152117_ensure_foreign_keys_on_clusters_applications.rb @@ -9,12 +9,28 @@ class EnsureForeignKeysOnClustersApplications < ActiveRecord::Migration disable_ddl_transaction! def up + existing = Clusters::Cluster + .joins(:application_ingress) + .where('clusters.id = clusters_applications_ingress.cluster_id') + + Clusters::Applications::Ingress.where('NOT EXISTS (?)', existing).in_batches do |batch| + batch.delete_all + end + unless foreign_keys_for(:clusters_applications_ingress, :cluster_id).any? add_concurrent_foreign_key :clusters_applications_ingress, :clusters, column: :cluster_id, on_delete: :cascade end + existing = Clusters::Cluster + .joins(:application_prometheus) + .where('clusters.id = clusters_applications_prometheus.cluster_id') + + Clusters::Applications::Ingress.where('NOT EXISTS (?)', existing).in_batches do |batch| + batch.delete_all + end + unless foreign_keys_for(:clusters_applications_prometheus, :cluster_id).any? add_concurrent_foreign_key :clusters_applications_prometheus, :clusters, column: :cluster_id, |