mirror of
https://github.com/TracksApp/tracks.git
synced 2025-09-22 05:50:47 +02:00
27 lines
No EOL
1 KiB
Ruby
27 lines
No EOL
1 KiB
Ruby
require 'rake'
|
|
|
|
namespace :db do
|
|
desc "Dump the current SQLite3 or MySQL database to a sql file"
|
|
task :dump_sql do
|
|
load 'config/environment.rb'
|
|
abcs = ActiveRecord::Base.configurations
|
|
case abcs[RAILS_ENV]["adapter"]
|
|
when 'mysql'
|
|
ActiveRecord::Base.establish_connection(abcs[RAILS_ENV])
|
|
File.open("db/#{RAILS_ENV}_data.sql", "w+") do |f|
|
|
if abcs[RAILS_ENV]["password"].blank?
|
|
f << `mysqldump -h #{abcs[RAILS_ENV]["host"]} -u #{abcs[RAILS_ENV]["username"]} #{abcs[RAILS_ENV]["database"]}`
|
|
else
|
|
f << `mysqldump -h #{abcs[RAILS_ENV]["host"]} -u #{abcs[RAILS_ENV]["username"]} -p#{abcs[RAILS_ENV]["password"]} #{abcs[RAILS_ENV]["database"]}`
|
|
end
|
|
end
|
|
when 'sqlite3'
|
|
ActiveRecord::Base.establish_connection(abcs[RAILS_ENV])
|
|
File.open("db/#{RAILS_ENV}_data.sql", "w+") do |f|
|
|
f << `sqlite3 #{abcs[RAILS_ENV]["database"]} .dump`
|
|
end
|
|
else
|
|
raise "Task not supported by '#{abcs[RAILS_ENV]['adapter']}'"
|
|
end
|
|
end
|
|
end |