Rails教程Michael H.(rails -v 4.2.2)
目标:获取schema.rb和add_column_password_digest以更新并在SQLite3浏览器上显示;但是,似乎没有更新SQLite3浏览器。
$ rails generate migration add_password_digest_to_users password_digest:string
invoke active_record
create db/migrate/20160109023342_add_password_digest_to_users.rb
(上面的命令运行正常,这意味着它确实创建了迁移。)
class AddPasswordDigestToUsers < ActiveRecord::Migration
def change
add_column :users, :password_digest, :string
end
end
(上面的代码,是上一个命令创建的实际迁移文件。)
$ bundle exec rake db:migrate
== 20160109023342 AddPasswordDigestToUsers: migrating ====================
-- add_column(:users, :password_digest, :string)
-> 0.0096s
== 20160109023342 AddPasswordDigestToUsers: migrated (0.0097s) ================
(然后我运行上面的命令)
如图所示,理论上应该将add_column添加到sqlite3 db中吗?
另外,我将包含schema.rb
ActiveRecord::Schema.define(version: 20160109023342) do
create_table "users", force: :cascade do |t|
t.string "name"
t.string "email"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "password_digest"
end
add_index "users", ["email"], name: "index_users_on_email", unique: true
end
(该版本等于add_password_digest_to_users.rb的版本,但sqlite3 db中的架构迁移也不会更新。)
是的,我已经尝试了一切,从确保语法正确,运行此命令 rake db:migrate VERSION = 20160109023342
最后但并非最不重要的是查看此帖子Ruby on Rails - sqlite 3 rake migrations not updating the database
最后,我确实已经正确地复制了教程中的gemfile ..检查出来
source 'https://rubygems.org'
group :development, :test do
gem 'sqlite3', '1.3.9'
gem 'byebug', '3.4.0'
gem 'web-console', '2.0.0.beta3'
gem 'spring', '1.1.3'
end
根据给出的信息,我也完全复制了迈克尔的教程,我遗漏或添加的内容是导致sqlite3数据库无法更新或删除任何新命令?
谢谢。
答案 0 :(得分:0)
您是否尝试过继续下一部分,指示您安装bcrypt
宝石?
您的schema.rb文件对我来说很好。我刚刚完成了本书的这一章,我的文件看起来完全一样。我没有遇到任何问题。 Rails会给你一个特定的错误吗?