mysql - Rails 4 migration not adding fields to an existing database -
i have order database trying add 2 new fields it
1) seller_id 2) buyer_id
when run command
rails generate migration addfieldstoorders buyer_id:integer seller_id:integer
it shows
invoke active_record create db/migrate/20140414094632_add_fieldsto_orders.rb
after running rake dd:migrate , rails s shows
== 20140414094632 addfieldstoorders: migrating ================================ == 20140414094632 addfieldstoorders: migrated (0.0000s) =======================
it should give me seller_id table , buyer_id table. have double checked orders database model via sqlite database model viewer , both fields have not appeared
both fields have been added user.rb , order.rb models
user.rb
class user < activerecord::base # include default devise modules. others available are: # :confirmable, :lockable, :timeoutable , :omniauthable devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable validates :name, presence: true has_many :listings, dependent: :destroy has_many :sales, class_name: "order", foreign_key: "seller_id" has_many :purchases, class_name: "order", foreign_key: "buyer_id" end
order.rb
class order < activerecord::base validates :address, :city, :state, presence: true belongs_to :listing belongs_to :buyer, class_name: "user" belongs_to :seller, class_name: "user" end
i have added listings id order database using rails generate migration addlistingidtoorders listing_id:integer unable add seller_id , buyer_id fields
migration file
class addfieldstoorders < activerecord::migration def change end end
without seeing actual migration file: db/migrate/20140414094632_add_fieldsto_orders.rb
, problem because of lowercase t
on toorders
.
the command should have run is:
rails generate migration addfieldstoorders buyer_id:integer seller_id:integer
which hvae generated migration file db/migrate/20140414094632_add_fields_to_orders.rb
(note underscore)
you should following fix this:
rake db:rollback rails generate migration addfieldstoorders buyer_id:integer seller_id:integer rake db:migrate
and delete original db/migrate/20140414094632_add_fieldsto_orders.rb
. rollback takes entry out schema_migrations
table in database make cleaner.
Comments
Post a Comment