Ruby Sinatra模型在迁移完成之前加载

Ruby Sinatra模型在迁移完成之前加载,ruby,postgresql,sinatra,sequel,Ruby,Postgresql,Sinatra,Sequel,我的cucumber测试有一个env.rb,它从头开始构建一个db,让测试失败,因为在运行测试时不存在关系 这是我的env.rb,没有不必要的代码 require 'pg' require 'sequel' DBNAME = 'dbname' ADMIN_DB = Sequel.connect 'postgres://postgres:@localhost/postgres' query = ADMIN_DB['SELECT * FROM pg_database WHERE datname =

我的cucumber测试有一个env.rb,它从头开始构建一个db,让测试失败,因为在运行测试时不存在关系

这是我的env.rb,没有不必要的代码

require 'pg'
require 'sequel'
DBNAME = 'dbname'
ADMIN_DB = Sequel.connect 'postgres://postgres:@localhost/postgres'

query = ADMIN_DB['SELECT * FROM pg_database WHERE datname = ?', DBNAME]
ADMIN_DB['CREATE DATABASE ?', Sequel.lit(DBNAME)].all if query.count == 0

ENV['DATABASE_TEST'] = "postgres://postgres:@localhost/#{DBNAME}"
DATABASE_TEST = Sequel.connect ENV['DATABASE_TEST']

require_relative '../../app'    

Sequel.extension :migration
Sequel::Migrator.run(DATABASE_TEST, 'db/migrations')
我的模型:

class User < Sequel::Model

end

我在我的env中尝试了各种代码的重新排列,以确保在加载模型get之前完成迁移

我猜迁移完成后,您可能需要打开一个新的DB连接。ORM框架需要底层数据库模式才能正常运行;您的可能会失败,因为您正在动态地在其下创建架构。@mcfinnigan,您建议在哪种情况下执行此操作?我尝试了几种方法,一开始是在我的模型中,使用环境配置。我还是犯了同样的错误。
  PG::UndefinedTable: ERROR:  relation "users" does not exist