Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails ROR Tutorail-SQLite3数据库不';t更新_Ruby On Rails_Ruby_Ruby On Rails 4_Sqlite - Fatal编程技术网

Ruby on rails ROR Tutorail-SQLite3数据库不';t更新

Ruby on rails ROR Tutorail-SQLite3数据库不';t更新,ruby-on-rails,ruby,ruby-on-rails-4,sqlite,Ruby On Rails,Ruby,Ruby On Rails 4,Sqlite,Rails教程Michael H.(Rails-v 4.2.2) 目标:获取schema.rb并添加_column_password_digest更新并显示在SQLite3浏览器上;但是,它似乎没有更新SQLite3浏览器 $ rails generate migration add_password_digest_to_users password_digest:string invoke active_record create db/migrate/20160109023

Rails教程Michael H.(Rails-v 4.2.2)

目标:获取schema.rb并添加_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
(上面的命令运行良好,这意味着它确实创建了迁移。)

(然后我运行上面的命令)

如图所示,理论上它应该向SQLITE3DB添加_列,对吗

此外,我还将包括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数据库中的模式迁移也不会更新。)

是的,我已经尝试了一切,从确保语法正确到运行这个命令 rake db:migrate VERSION=20160109023342

最后但并非最不重要的是,检查此线程

最后,我确实正确地从教程中复制了GEM文件。。看看

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
从给出的信息和我也复制了Michael的教程来看,我遗漏了什么或添加了什么导致sqlite3 db无法更新或播放任何新命令


多谢各位

您是否尝试继续下一节,该节指示您安装
bcrypt
gem


我觉得你的schema.rb文件很好。我刚读完书中的这一章,我的档案看起来完全一样。我没有遇到任何问题。Rails是否给了您一个特定的错误?

如果您使用
sqlite3
CLI工具打开数据库文件并说
.schema users
,您会得到什么?我在sqlite3 CLI工具和输入中不会得到任何回报。schema users。。。还有别的吗?谢谢你的帮助。你打开了正确的数据库文件吗?它应该说点什么。不,它没有给出任何错误。。在开始项目之前,我下载了项目所需的所有gem。所以,我确实安装了“bcrypt”gem。。还有其他原因吗?谢谢
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
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