【问题标题】:Ruby on Rails Tutorial: Database will not updateRuby on Rails 教程:数据库不会更新
【发布时间】:2014-10-25 01:36:48
【问题描述】:

我正在学习Michael Hartl 教程

我创建了一个名为 add_remember_token_to_users 的迁移文件,并用清单 8.16 中的内容填充它,以便为每个用户创建一个被索引的 remember_token 单元格。

我从命令行迁移了数据,根据 cmd,该数据运行成功。但是,我正在使用 splite 浏览器查看 test.sqlite3 文件,并且它尚未更新为包含 remember_token 单元格。怎么回事?

我在迁移文件中没有看到任何拼写错误,我使用 rails 生成了迁移文件。

【问题讨论】:

  • db/schema.rb 可能有助于指出问题。

标签: ruby-on-rails railstutorial.org


【解决方案1】:

您还需要将迁移应用到测试数据库,因为迁移只更新了开发数据库。您可以使用以下命令来实现它:

rake db:test:clone_structure # Recreate the test databases from the development structure

请注意,如果您想知道,还有其他方法可以达到相同的结果,例如只运行 clone

db:test:clone

【讨论】:

  • 我也检查了开发数据库
  • 运行rake db:migrate 命令时控制台的输出是什么?
  • $ bundle exec rake db:migrate == 20141024165248 AddRememberTokenToUsers: migrating ========================== == 20141024165248 AddRememberTokenToUsers: migrated (0.0000s) =================
  • 这表明没有进行任何更改,否则它将输出类似于此的行:add_column(:users, :remember_token, :string)。使用迁移文件的内容更新您的问题
  • 您是否真的更新了迁移文件以添加这样的列:add_column :users, :remember_token, :string
猜你喜欢
  • 1970-01-01
  • 2017-08-16
  • 1970-01-01
  • 1970-01-01
  • 2013-11-22
  • 2012-04-03
  • 2013-03-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多