Commit aac7fa7e

mo k <mo@mokhan.ca>
2012-10-07 16:51:51
start migration script to move creation images to the photo model.
1 parent e40065a
app/models/photo.rb
@@ -1,4 +1,5 @@
 class Photo < ActiveRecord::Base
+  attr_accessible :is_primary, :creation
   belongs_to :creation
   validates :image,  :presence => true
   mount_uploader :image, PhotoUploader
db/migrate/20121007153155_migrate_images_to_photos.rb
@@ -0,0 +1,21 @@
+class MigrateImagesToPhotos < ActiveRecord::Migration
+  def up
+    add_column :photos, :is_primary, :boolean
+
+    Creation.all.each_with_index do |creation, index|
+      photo = creation.photos.build({:is_primary => true})
+      photo.created_at = creation.created_at
+      photo.updated_at = creation.updated_at
+      photo.image = creation.image.file
+      photo.save!
+      puts "#{index}. migrated #{creation.image.url} to #{photo.attributes}"
+    end
+  end
+
+  def down
+    Photo.all.where(:is_primary => true).each do |photo|
+      photo.destroy!
+    end
+    remove_column :photos, :is_primary
+  end
+end
db/schema.rb
@@ -11,7 +11,7 @@
 #
 # It's strongly recommended to check this file into your version control system.
 
-ActiveRecord::Schema.define(:version => 20121006225021) do
+ActiveRecord::Schema.define(:version => 20121002125009) do
 
   create_table "active_admin_comments", :force => true do |t|
     t.integer  "resource_id",   :null => false
@@ -93,22 +93,6 @@ ActiveRecord::Schema.define(:version => 20121006225021) do
     t.integer "category_id"
   end
 
-  create_table "delayed_jobs", :force => true do |t|
-    t.integer  "priority",   :default => 0
-    t.integer  "attempts",   :default => 0
-    t.text     "handler"
-    t.text     "last_error"
-    t.datetime "run_at"
-    t.datetime "locked_at"
-    t.datetime "failed_at"
-    t.string   "locked_by"
-    t.string   "queue"
-    t.datetime "created_at",                :null => false
-    t.datetime "updated_at",                :null => false
-  end
-
-  add_index "delayed_jobs", ["priority", "run_at"], :name => "delayed_jobs_priority"
-
   create_table "favorites", :force => true do |t|
     t.integer  "user_id"
     t.integer  "creation_id"