]> git.openstreetmap.org Git - rails.git/blobdiff - db/migrate/023_add_changesets.rb
Avoid relying on the order in which emails are sent
[rails.git] / db / migrate / 023_add_changesets.rb
index e0cf3904a50d8ea98f79e40d1e20f5f8707336ae..9039bb5d6a9c693586008e5b9e081c96b792c13a 100644 (file)
@@ -1,46 +1,47 @@
+require "migrate"
+
 class AddChangesets < ActiveRecord::Migration
 class AddChangesets < ActiveRecord::Migration
-  @@conv_user_tables = ['current_nodes',
-  'current_relations', 'current_ways', 'nodes', 'relations', 'ways' ]
-  
+  @conv_user_tables = %w(current_nodes current_relations current_ways nodes relations ways)
+
   def self.up
   def self.up
-    create_table "changesets", innodb_table do |t|
-      t.column "id",             :bigint_pk,              :null => false
-      t.column "user_id",        :bigint,   :limit => 20, :null => false
-      t.column "created_at",     :datetime,               :null => false
-      t.column "open",           :boolean,                :null => false, :default => true
-      t.column "min_lat",        :integer,                :null => true
-      t.column "max_lat",        :integer,                :null => true
-      t.column "min_lon",        :integer,                :null => true
-      t.column "max_lon",        :integer,                :null => true
+    create_table "changesets", :id => false do |t|
+      t.column "id",             :bigserial, :primary_key => true, :null => false
+      t.column "user_id",        :bigint, :null => false
+      t.column "created_at",     :datetime, :null => false
+      t.column "open",           :boolean, :null => false, :default => true
+      t.column "min_lat",        :integer, :null => true
+      t.column "max_lat",        :integer, :null => true
+      t.column "min_lon",        :integer, :null => true
+      t.column "max_lon",        :integer, :null => true
     end
 
     end
 
-    create_table "changeset_tags", innodb_table do |t|
-      t.column "id", :bigint, :limit => 64, :null => false
+    create_table "changeset_tags", :id => false do |t|
+      t.column "id", :bigint, :null => false
       t.column "k",  :string, :default => "", :null => false
       t.column "v",  :string, :default => "", :null => false
     end
 
     add_index "changeset_tags", ["id"], :name => "changeset_tags_id_idx"
       t.column "k",  :string, :default => "", :null => false
       t.column "v",  :string, :default => "", :null => false
     end
 
     add_index "changeset_tags", ["id"], :name => "changeset_tags_id_idx"
-    
+
     #
     #
-    # Initially we will have one changeset for every user containing 
-    # all edits up to the API change,  
+    # Initially we will have one changeset for every user containing
+    # all edits up to the API change,
     # all the changesets will have the id of the user that made them.
     # We need to generate a changeset for each user in the database
     # all the changesets will have the id of the user that made them.
     # We need to generate a changeset for each user in the database
-    execute "INSERT INTO changesets (id, user_id, created_at, open)" + 
+    execute "INSERT INTO changesets (id, user_id, created_at, open)" +
       "SELECT id, id, creation_time, false from users;"
 
       "SELECT id, id, creation_time, false from users;"
 
-    @@conv_user_tables.each { |tbl|
+    @conv_user_tables.each do |tbl|
       rename_column tbl, :user_id, :changeset_id
       rename_column tbl, :user_id, :changeset_id
-      #foreign keys too
-      add_foreign_key tbl, [:changeset_id], :changesets, [:id]
-    }
+      # foreign keys too
+      add_foreign_key tbl, :changesets, :name => "#{tbl}_changeset_id_fkey"
+    end
   end
 
   def self.down
     # It's not easy to generate the user ids from the changesets
   end
 
   def self.down
     # It's not easy to generate the user ids from the changesets
-    raise IrreversibleMigration.new
-    #drop_table "changesets"
-    #drop_table "changeset_tags"
+    fail ActiveRecord::IrreversibleMigration
+    # drop_table "changesets"
+    # drop_table "changeset_tags"
   end
 end
   end
 end