我是铁杆新手。生成数据库迁移时出错了。我试图在餐馆添加头像。但是,我试图向用户添加头像。
这是我输入的错误命令:
rails g migration add_avatar_to_user avatar:string
然而,用户不存在它应该是餐馆,所以应该是:
rails g migration add_avatar_to_restaurant avatar:string
我尝试做rake db:migrate然后意识到我的错误:
SQLite3::SQLException: no such table: users: ALTER TABLE "users" ADD "avatar" varchar
我读了一些关于堆栈溢出的答案,他们只是说要运行正确的生成迁移,它会修复它。所以我做了但却没有。
然后我尝试做一个rake db:rollback,它删除了餐馆(这是我实际想要保留的那个)。
但是我可以在我的db / migrate文件夹中看到我仍然有我创建餐馆的迁移,正确的迁移,用于向餐馆添加头像以及错误的迁移,如下图所示。
所以在我搞砸之前,我想知道我是否只是从树中删除不正确的迁移并运行rake db:migrate是否会修复它或者我还应该做些什么。
由于
答案 0 :(得分:1)
您可以使用
回滚到正确的迁移rake db:migrate VERSION=2012342112
确保使用您要回滚的版本。在您的情况下是_create_restaurants.rb
现在删除不必要的迁移。 _add_avatar_to_users
然后最后运行rake db:migrate
在任何给定时间点,您都可以使用
检查您的迁移状态rake db:migrate:status