1
我想安装血统宝石,但我有问题rake db:migrate
。祖先分贝:迁移
我按照Ancestry github页面上的说明进行操作。我已经做了rails g migration add_ancestry_to_message ancestry:string
我编辑迁移文件后(以下railcast#262)为:
class AddAncestryToMessage < ActiveRecord::Migration
def self.up
add_column :messages, :ancestry, :string
add_index :messages, :ancestry
end
def self.down
remove_index :messages, :ancestry
remove_column :messages, :ancestry
end
end
当我再运行rake db:migrate
我收到以下错误:
== AddAncestryToMessage: migrating ===========================================
-- add_column(:messages, :ancestry, :string)
rake aborted!
An error has occurred, this and all later migrations canceled:
SQLite3::SQLException: no such table: Shipmgr: ALTER TABLE "Message" ADD "ancestry" varchar(255)
Tasks: TOP => db:migrate
我曾尝试这在一个新创建的rails应用程序和一个现有的rails应用程序上,但我仍然无法得到这个工作。有没有人在这个问题上有任何建议?
感谢你的建议。我试过这个,它仍然抛出相同的错误信息。我已经按照你所描述的方式进行了设置,我在包含'class Messages
2012-01-12 10:40:23
的模型中也有messages.rb我认为问题可能是你如何使用复数和单数你的代码中的名字。以下是一般规则:模型类名称和模型文件名应使用单数(类Message和message.rb)。迁移应参考总是复数的表名。有许多方法可以改变这种默认行为,但首先尝试遵守默认设置,看看是否可行 – PinnyM 2012-01-12 14:45:54
另外,您是否可以确认您是否有以前的迁移来创建:messages表? – PinnyM 2012-01-12 17:05:24