Add a remove_foreign_key method and make migration 34 reversible.
authorTom Hughes <tom@compton.nu>
Sun, 31 May 2009 13:53:16 +0000 (13:53 +0000)
committerTom Hughes <tom@compton.nu>
Sun, 31 May 2009 13:53:16 +0000 (13:53 +0000)
db/migrate/034_create_languages.rb
lib/migrate.rb

index 4b45ce3..17f5efe 100644 (file)
@@ -23,7 +23,10 @@ class CreateLanguages < ActiveRecord::Migration
   end
 
   def self.down
-    raise IrreversibleMigration.new
+    remove_foreign_key :diary_entries, [:language_code], :languages, [:code]
+    remove_foreign_key :users, [:locale], :languages, [:code]
+
+    drop_table :languages
   end
 end
 
index 05b3c90..50ba632 100644 (file)
@@ -21,6 +21,11 @@ module ActiveRecord
          "REFERENCES #{reftbl} (#{quote_column_names(refcol || column_name)})"
       end
 
+      def remove_foreign_key(table_name, column_name, reftbl, refcol = nil)
+        execute "ALTER TABLE #{table_name} DROP " +
+          "CONSTRAINT #{table_name}_#{column_name[0]}_fkey"
+      end
+
       alias_method :old_options_include_default?, :options_include_default?
 
       def options_include_default?(options)