我在这里为 acts_as_commentable_with_threading的数据库迁移而苦苦挣扎。
生成迁移rails generate acts_as_commentable_with_threading_migration
后,我继续添加评论表rake db:migrate
。没有发生任何事情,没有错误消息,只是返回到常规提示。
在查看对此问题的其他回复时,我尝试了rake db:migrate VERSION= # version number
。
然而,我在这里收到错误回复ActiveRecord::UnknownMigrationVersionError:
我必须在这里做一些极其错误的事情,因为计算机没有验证我的评论迁移的存在......
@Tiago回复
更新跑rails generate migration acts_as_commentable_with_threading_migration
我必须通过将this code添加到迁移文件来手动创建迁移。然后,db:migration
完美无缺。
为什么它首先没有工作? Documentation 明确表示要运行rails generate acts_as_commentable_with_threading_migration
。
答案 0 :(得分:1)
如gem的页面所示,只需为自己创建一个迁移:
rails g migration acts_as_commentable_with_threading_migration
并将其粘贴到文件中:
class ActsAsCommentableWithThreadingMigration < ActiveRecord::Migration
def self.up
create_table :comments, :force => true do |t|
t.integer :commentable_id, :default => 0
t.string :commentable_type
t.string :title
t.text :body
t.string :subject
t.integer :user_id, :default => 0, :null => false
t.integer :parent_id, :lft, :rgt
t.timestamps
end
add_index :comments, :user_id
add_index :comments, [:commentable_id, :commentable_type]
end
def self.down
drop_table :comments
end
end