]> 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 ca9552d98298f6eafe559f6c581844a5985c5e37..17f5efe027e37d4b12bc44175ba8f73bed2561aa 100644 (file)
@@ -3,21 +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(:code => 'en', :name => 'English', :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