]> git.openstreetmap.org Git - rails.git/blobdiff - db/migrate/034_create_languages.rb
Add a remove_foreign_key method and make migration 34 reversible.
[rails.git] / db / migrate / 034_create_languages.rb
index daaf2199190d4c1669415bcf8633843cb5337956..17f5efe027e37d4b12bc44175ba8f73bed2561aa 100644 (file)
@@ -3,25 +3,30 @@ require 'lib/migrate'
 class CreateLanguages < ActiveRecord::Migration
   def self.up
     create_table :languages, innodb_table do |t|
-      t.string :code, :limit => 5, :null => false
-      t.string :name, :null => false
-      t.boolean :translation_available, :null => false, :default => false
+      t.string :code, :null => false
+      t.string :english_name, :null => false
+      t.string :native_name
     end
 
     add_primary_key :languages, [:code]
 
-    Language.create do |l|
-      l.code = 'en'
-      l.name = 'English'
-      l.translation_available = true
+    YAML.load(File.read(RAILS_ROOT + "/config/languages.yml")).each do |k,v|
+      Language.create do |l|
+        l.code = k
+        l.english_name = v["english"]
+        l.native_name = v["native"]
+      end
     end
 
     add_foreign_key :users, [:locale], :languages, [:code]
-    add_foreign_key :diary_entries, [:language], :languages, [:code]    
+    add_foreign_key :diary_entries, [:language_code], :languages, [:code]    
   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