11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
# File 'lib/combustion/database.rb', line 11
def self.reset_database
abcs = ActiveRecord::Base.configurations
case abcs['test']['adapter']
when /mysql/
ActiveRecord::Base.establish_connection(:test)
ActiveRecord::Base.connection.recreate_database(abcs['test']['database'],
mysql_creation_options(abcs['test']))
ActiveRecord::Base.establish_connection(:test)
when /postgresql/
ActiveRecord::Base.clear_active_connections!
drop_database(abcs['test'])
create_database(abcs['test'])
when /sqlite/
drop_database(abcs['test'])
create_database(abcs['test'])
when 'sqlserver'
test = abcs.deep_dup['test']
test_database = test['database']
test['database'] = 'master'
ActiveRecord::Base.establish_connection(test)
ActiveRecord::Base.connection.recreate_database!(test_database)
when "oci", "oracle"
ActiveRecord::Base.establish_connection(:test)
ActiveRecord::Base.connection.structure_drop.split(";\n\n").each do |ddl|
ActiveRecord::Base.connection.execute(ddl)
end
when 'firebird'
ActiveRecord::Base.establish_connection(:test)
ActiveRecord::Base.connection.recreate_database!
else
raise "Cannot reset databases for '#{abcs['test']['adapter']}'"
end
end
|