我正在学习rails教程,但是遇到了问题。从清单8.16开始,我对<timestamp>_add_remember_token_to_users.rb
进行了以下修改
class AddRememberTokenToUsers < ActiveRecord::Migration
def change
add_column :users, :remember_token, :string
add_index :users, :remember_token
end
end
然后,向导说要像往常一样更新dev & test db:
$ bundle exec rake db:migrate
$ bundle exec rake db:test:prepare
我的*remember_token*用户测试仍然失败,所以我使用命令行sqlite3查看了dev中的用户表和测试数据库。它们看起来像这样:
sqlite> .schema users
CREATE TABLE "users" (
"id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
"name" varchar(255),
"email" varchar(255),
"created_at" datetime NOT NULL,
"updated_at" datetime NOT NULL,
"password_digest" varchar(255));
CREATE UNIQUE INDEX "index_users_on_email" ON "users" ("email");
我的迁移似乎还没有运行,但我不知道如何强制它运行。
发布于 2012-09-20 09:49:58
我遇到了与最初问题相同的问题。$ bundle exec rake db:migrate
没有将remember_token添加到.db中,Latha Doddikadi的回答对我很有效。
我做到了:
rake db:rollback
然后:
$ bundle exec rake db:migrate
它将remember_token字段添加到数据库中,然后:
bundle exec rspec spec/models/user_spec.rb
都过去了。
Finished in 0.92841 seconds
21 examples, 0 failures
发布于 2012-03-28 13:22:17
回滚,然后重新运行它可能起作用的迁移。
rake db:rollback
回滚之后,重新运行您的迁移。
https://stackoverflow.com/questions/9896488
复制相似问题