【问题标题】:How to run db:migrate for test database in Rails 5?如何在 Rails 5 中为测试数据库运行 db:migrate?
【发布时间】:2017-01-21 11:15:48
【问题描述】:

我使用 postgresql db 创建了一个新的 rails 5 应用程序并修改了 database.yml 文件。我成功地创建了开发和测试数据库,但是在运行迁移时,只有开发数据库被更新,测试数据库保持不变。

这是我使用的命令列表:

rails db:create                     # Created both development and test
rails db:migrate                    # Migrated only to development
rails db:migrate RAILS_ENV=test     # Does nothing (no error output)
rake db:migrate RAILS_ENV=test      # Same result as above

我的 database.yml 文件:

default: &default
  adapter: postgresql
  encoding: unicode
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>

development:
  <<: *default
  database: myapp_development
  username: myapp_admin
  password:
  host: localhost
  port: 5432

test:
  <<: *default
  database: myapp_test
  username: myapp_admin
  password:
  host: localhost
  port: 5432

我也尝试将ActiveRecord::Migration.maintain_test_schema! 添加到test_helper.rb,但这也没有用。

有什么建议吗?

【问题讨论】:

    标签: ruby-on-rails-5 dbmigrate test-environments


    【解决方案1】:

    我通过从 database.yml 中删除 host: localhost 使其工作。现在rails db:migrate RAILS_ENV=test 工作正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-20
      • 2010-11-12
      • 1970-01-01
      • 1970-01-01
      • 2011-04-15
      • 2012-02-19
      • 1970-01-01
      • 2019-02-16
      相关资源
      最近更新 更多