FIX: Clean broken relations before adding javascript_caches foreign key

FIX: Clean broken relations before adding javascript_caches foreign key

diff --git a/db/migrate/20190513143015_add_theme_id_to_javascript_cache.rb b/db/migrate/20190513143015_add_theme_id_to_javascript_cache.rb
index 1dc3611..16710de 100644
--- a/db/migrate/20190513143015_add_theme_id_to_javascript_cache.rb
+++ b/db/migrate/20190513143015_add_theme_id_to_javascript_cache.rb
@@ -2,6 +2,15 @@
 
 class AddThemeIdToJavascriptCache < ActiveRecord::Migration[5.2]
   def up
+    # Delete any javascript caches with broken foreign keys
+    execute <<~SQL
+      DELETE FROM javascript_caches jc
+      WHERE  NOT EXISTS (
+        SELECT 1
+        FROM   theme_fields tf
+        WHERE  tf.id = jc.theme_field_id
+        );
+    SQL
     make_changes
     execute "ALTER TABLE javascript_caches ADD CONSTRAINT enforce_theme_or_theme_field CHECK ((theme_id IS NOT NULL AND theme_field_id IS NULL) OR (theme_id IS NULL AND theme_field_id IS NOT NULL))"
   end

GitHub sha: 6afd7f0e