【发布时间】:2019-06-17 23:27:45
【问题描述】:
我进行了新的迁移,以便在我的 Ingredients Active Record 中添加 price 列。尽管如此,当我运行 rails db:migrate 时,我收到一条错误消息,指出表成分不存在。这是我的控制台命令:
C:\Users\andri\Desktop\hoagieShop\hoagieShop>rails generate migration
AddPriceToIngredients price:decimal, false:null --force
invoke active_record
remove db/migrate/20190124075954_add_price_to_ingredients.rb
create db/migrate/20190124080657_add_price_to_ingredients.rb
C:\Users\andri\Desktop\hoagieShop\hoagieShop>rails db:migrate
== 20190123201200 RemovePriceFromIngrendients: migrating
======================
-- remove_column(:ingrendients, :price, :decimal)
rails aborted!
StandardError: An error has occurred, this and all later migrations
canceled:
Could not find table ingrendients
C:/Users/andri/Desktop/hoagieShop/hoagieShop/db/migrate/201901232
01200_remove_price_from_ingrendients.rb:3:in change
bin/rails:4:in require
bin/rails:4:in <main>
Caused by:
ActiveRecord::StatementInvalid: Could not find table ingrendients
C:/Users/andri/Desktop/hoagieShop/hoagieShop/db/migrate/20190123201200_
remove_pr
ice_from_ingrendients.rb:3:in change
bin/rails:4:in require
bin/rails:4:in <main>
Tasks: TOP => db:migrate
(See full trace by running task with --trace)
我已经删除并再次添加了这个迁移几次,所以我不确定这是否起到任何作用。 有谁知道为什么会发生这种情况?感谢您的帮助!
【问题讨论】:
-
有迁移
20190123201200应该从表 (ingrendients) 中删除特定列 (price)。但是整张桌子不存在——Could not find table ingrendients。你到底有什么不清楚的地方? -
@spickermann 但我输入的是 AddPriceToIngrendients 而不是 AddPriceToIngrendients。
-
@spickermann 我接下来要做的是 rails db:migrate ,您看到的其余命令都是自动生成的。
-
@spickermann 我接下来要做的是 rails db:migrate ,您看到的其余命令都是自动生成的。
标签: ruby ruby-on-rails-3 activerecord migration