From 3d9fceb479028b58f5c7302d767bfa2070b6a598 Mon Sep 17 00:00:00 2001 From: Lukas Matt Date: Mon, 28 Apr 2014 10:15:25 -0400 Subject: [PATCH] DB fix to work with existing entries * added temp. default values for user_id and item_type * changed model validation for item_type --- app/models/report.rb | 3 ++- db/migrate/20140121132816_add_post_type_to_post_report.rb | 3 ++- .../20140422134627_change_user_id_type_to_integer.rb | 7 +++++-- db/schema.rb | 2 +- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/app/models/report.rb b/app/models/report.rb index 358704009..6ee562293 100644 --- a/app/models/report.rb +++ b/app/models/report.rb @@ -1,7 +1,8 @@ class Report < ActiveRecord::Base validates :user_id, presence: true validates :item_id, presence: true - validates :item_type, presence: true + validates :item_type, presence: true, :inclusion => { :in => %w(post comment), + :message => 'Type should match `post` or `comment`!'} validates :text, presence: true validate :entry_does_not_exist, :on => :create diff --git a/db/migrate/20140121132816_add_post_type_to_post_report.rb b/db/migrate/20140121132816_add_post_type_to_post_report.rb index be50eca0a..4d6686eea 100644 --- a/db/migrate/20140121132816_add_post_type_to_post_report.rb +++ b/db/migrate/20140121132816_add_post_type_to_post_report.rb @@ -1,5 +1,6 @@ class AddPostTypeToPostReport < ActiveRecord::Migration def change - add_column :post_reports, :post_type, :string, :null => false, :after => :post_id + add_column :post_reports, :post_type, :string, :null => false, :after => :post_id, :default => 'post' + change_column_default :post_reports, :post_type, nil end end diff --git a/db/migrate/20140422134627_change_user_id_type_to_integer.rb b/db/migrate/20140422134627_change_user_id_type_to_integer.rb index de21f2bd3..1f4918e8b 100644 --- a/db/migrate/20140422134627_change_user_id_type_to_integer.rb +++ b/db/migrate/20140422134627_change_user_id_type_to_integer.rb @@ -1,9 +1,12 @@ class ChangeUserIdTypeToInteger < ActiveRecord::Migration def up - change_column :reports, :user_id, :integer + remove_column :reports, :user_id + add_column :reports, :user_id, :integer, :null => false, :default => 1 + change_column_default :reports, :user_id, nil end def down - change_column :reports, :user_id, :string + remove_column :reports, :user_id + add_column :reports, :user_id, :string end end diff --git a/db/schema.rb b/db/schema.rb index 46d425636..8ae07e086 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -402,11 +402,11 @@ ActiveRecord::Schema.define(:version => 20140422134627) do create_table "reports", :force => true do |t| t.integer "item_id", :null => false t.string "item_type", :null => false - t.integer "user_id" t.boolean "reviewed", :default => false t.text "text" t.datetime "created_at", :null => false t.datetime "updated_at", :null => false + t.integer "user_id", :null => false end add_index "reports", ["item_id"], :name => "index_post_reports_on_post_id"