ruby-on-rails-5 - 如何运行数据库 :migrate for test database in Rails 5?

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

我使用 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 但这也不起作用。

有什么建议么?

最佳答案

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

关于ruby-on-rails-5 - 如何运行数据库 :migrate for test database in Rails 5?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39477047/

相关文章:

ruby-on-rails - 清除 Rails 5 中的所有 session

ruby-on-rails - 使用 rake 数据库 :migrate inside another task leaves pending migrations

mongodb - 将本地 mongo db 迁移到 atlas 后无法从 atlas 获取记录

ruby-on-rails - 未定义的方法 "each_pair"运行数据库迁移时出错

python - 如何最大程度地减少 tox 文件中的重复

ruby-on-rails - 多表排序

ruby-on-rails - 生产环境 Nginx 中的 Rails 5 ActionController::InvalidAuthenticityToken

firebase - 如何在 Flutter 中设置不同的 firebase 环境

deployment - 如何处理微服务架构中的共享状态?

ruby-on-rails - rails ActiveRecord : Saving nested models is rolled back