ROR Tutorail - SQLite3 DB无法更新

时间:2016-01-09 03:41:52

标签: ruby-on-rails ruby ruby-on-rails-4 sqlite

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数据库无法更新或删除任何新命令?

谢谢。

1 个答案:

答案 0 :(得分:0)

您是否尝试过继续下一部分,指示您安装bcrypt宝石?

您的schema.rb文件对我来说很好。我刚刚完成了本书的这一章,我的文件看起来完全一样。我没有遇到任何问题。 Rails会给你一个特定的错误吗?