module RSpec::Sequel::MigrationExampleGroup::ClassMethods

Public Instance Methods

postgres_schema(&block) click to toggle source
# File lib/rspec/sequel/migration_example_group.rb, line 20
def postgres_schema &block
  db = Sequel::DATABASES.find { |db| db.database_type == :postgres }
  raise "Please connect to a Postgres database (eg. in spec_helper) before using ::postgres_schema." unless db
  db = Sequel.connect(db.opts.merge search_path: ['spec'])
  db.drop_schema :spec, cascade: true, if_exists: true
  before(:all) do
    db.create_schema :spec
    db.instance_eval &block if block
  end
  let(:db) { db }
  after(:all) { db.drop_schema :spec, cascade: true, if_exists: true }
  around(:each) { |ex|  db.transaction(rollback: :always) { ex.run  } }
end