提交 a3743667 编写于 作者: D Daniel Azuma

Remove pre-emptive adapter name check from databases.rake so third party...

Remove pre-emptive adapter name check from databases.rake so third party adapters can register rake tasks
上级 efd2be35
...@@ -284,8 +284,6 @@ db_namespace = namespace :db do ...@@ -284,8 +284,6 @@ db_namespace = namespace :db do
filename = ENV['DB_STRUCTURE'] || File.join(Rails.root, "db", "structure.sql") filename = ENV['DB_STRUCTURE'] || File.join(Rails.root, "db", "structure.sql")
current_config = ActiveRecord::Tasks::DatabaseTasks.current_config current_config = ActiveRecord::Tasks::DatabaseTasks.current_config
case current_config['adapter'] case current_config['adapter']
when /mysql/, /postgresql/, /sqlite/
ActiveRecord::Tasks::DatabaseTasks.structure_dump(current_config, filename)
when 'oci', 'oracle' when 'oci', 'oracle'
ActiveRecord::Base.establish_connection(current_config) ActiveRecord::Base.establish_connection(current_config)
File.open(filename, "w:utf-8") { |f| f << ActiveRecord::Base.connection.structure_dump } File.open(filename, "w:utf-8") { |f| f << ActiveRecord::Base.connection.structure_dump }
...@@ -296,7 +294,7 @@ db_namespace = namespace :db do ...@@ -296,7 +294,7 @@ db_namespace = namespace :db do
db_string = firebird_db_string(current_config) db_string = firebird_db_string(current_config)
sh "isql -a #{db_string} > #{filename}" sh "isql -a #{db_string} > #{filename}"
else else
raise "Task not supported by '#{current_config["adapter"]}'" ActiveRecord::Tasks::DatabaseTasks.structure_dump(current_config, filename)
end end
if ActiveRecord::Base.connection.supports_migrations? if ActiveRecord::Base.connection.supports_migrations?
...@@ -312,8 +310,6 @@ db_namespace = namespace :db do ...@@ -312,8 +310,6 @@ db_namespace = namespace :db do
current_config = ActiveRecord::Tasks::DatabaseTasks.current_config current_config = ActiveRecord::Tasks::DatabaseTasks.current_config
filename = ENV['DB_STRUCTURE'] || File.join(Rails.root, "db", "structure.sql") filename = ENV['DB_STRUCTURE'] || File.join(Rails.root, "db", "structure.sql")
case current_config['adapter'] case current_config['adapter']
when /mysql/, /postgresql/, /sqlite/
ActiveRecord::Tasks::DatabaseTasks.structure_load(current_config, filename)
when 'sqlserver' when 'sqlserver'
`sqlcmd -S #{current_config['host']} -d #{current_config['database']} -U #{current_config['username']} -P #{current_config['password']} -i #{filename}` `sqlcmd -S #{current_config['host']} -d #{current_config['database']} -U #{current_config['username']} -P #{current_config['password']} -i #{filename}`
when 'oci', 'oracle' when 'oci', 'oracle'
...@@ -326,7 +322,7 @@ db_namespace = namespace :db do ...@@ -326,7 +322,7 @@ db_namespace = namespace :db do
db_string = firebird_db_string(current_config) db_string = firebird_db_string(current_config)
sh "isql -i #{filename} #{db_string}" sh "isql -i #{filename} #{db_string}"
else else
raise "Task not supported by '#{current_config['adapter']}'" ActiveRecord::Tasks::DatabaseTasks.structure_load(current_config, filename)
end end
end end
...@@ -384,8 +380,6 @@ db_namespace = namespace :db do ...@@ -384,8 +380,6 @@ db_namespace = namespace :db do
task :purge => [:environment, :load_config] do task :purge => [:environment, :load_config] do
abcs = ActiveRecord::Base.configurations abcs = ActiveRecord::Base.configurations
case abcs['test']['adapter'] case abcs['test']['adapter']
when /mysql/, /postgresql/, /sqlite/
ActiveRecord::Tasks::DatabaseTasks.purge abcs['test']
when 'sqlserver' when 'sqlserver'
test = abcs.deep_dup['test'] test = abcs.deep_dup['test']
test_database = test['database'] test_database = test['database']
...@@ -401,7 +395,7 @@ db_namespace = namespace :db do ...@@ -401,7 +395,7 @@ db_namespace = namespace :db do
ActiveRecord::Base.establish_connection(:test) ActiveRecord::Base.establish_connection(:test)
ActiveRecord::Base.connection.recreate_database! ActiveRecord::Base.connection.recreate_database!
else else
raise "Task not supported by '#{abcs['test']['adapter']}'" ActiveRecord::Tasks::DatabaseTasks.purge abcs['test']
end end
end end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册