ruby-on-rails - RSPEC - 在加载时从文件恢复数据库

标签 ruby-on-rails postgresql rspec

我有一个 Rails 项目运行 rspec 进行测试,我想在每次启动 RSPEC 时从转储文件中恢复测试数据库。我尝试在 rspec block 下的 rails_helper 文件中编写一些配置,但由于数据库正在使用中,无法使用系统命令恢复数据库。

加载 rspec 时如何从转储文件恢复数据库?

使用 Rails 5 和 psql

最佳答案

我能够通过在 RSpec 配置 block 下的 rails_helper 中执行以下操作来解决此问题:

  ActiveRecord::Base.connection.disconnect!
  system('bin/rails db:environment:set RAILS_ENV=test')
  system('rake db:drop')
  system('rake db:create')
  system('pg_restore --no-acl --no-owner -d name_of_databse test.dump')
  ActiveRecord::Base::establish_connection

关于ruby-on-rails - RSPEC - 在加载时从文件恢复数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43330307/

相关文章:

ruby-on-rails - Rails - 发送欢迎电子邮件时设计延迟

ruby-on-rails - 范围导致未定义的方法 `const_defined?'

postgresql - PostgreSQL 是否存在于 OS X Mavericks 上?

rspec - capybara 希望页面内容不止一次

ruby-on-rails - rspec 和插件生成

ruby-on-rails - Rails 不可编辑文本字段

postgresql - Postgres UPSERT语法困惑

postgresql - 如何在不使用 GROUP BY 子句的情况下对行进行分组

ruby-on-rails - Rack rSpec Controller Tests with Rack Middleware 问题

ruby-on-rails - RSpec 错误 "undefined method ` respond_with'..."