class SpecDb TEST_DB_NAME="jam_web_test" def self.recreate_database(db_config) recreate_database_jdbc(db_config) end def self.recreate_database_jdbc(db_config) db_test_name = db_config["database"] # jump into the 'postgres' database, just so we have somewhere to 'land' other than our test db, # since we are going to drop/recreate it db_config["database"] = "postgres" ActiveRecord::Base.establish_connection(db_config) ActiveRecord::Base.connection.execute("DROP DATABASE IF EXISTS #{db_test_name}") if ENV['TABLESPACE'] ActiveRecord::Base.connection.execute("CREATE DATABASE #{db_test_name} WITH tablespace=#{ENV["TABLESPACE"]}") else ActiveRecord::Base.connection.execute("CREATE DATABASE #{db_test_name}") end db_config["database"] = db_test_name JamDb::Migrator.new.migrate(:dbname => db_config["database"], :user => db_config["username"], :password => db_config["password"], :host => db_config["host"]) end def self.recreate_database_pg conn = PG::Connection.open("dbname=postgres") conn.exec("DROP DATABASE IF EXISTS #{TEST_DB_NAME}") conn.exec("CREATE DATABASE #{TEST_DB_NAME}") JamDb::Migrator.new.migrate(:dbname => TEST_DB_NAME) end end