0
@@ -27,6 +27,64 @@ module Mack
0
Mack::Database.establish_connection(env)
0
+ # abcs = ActiveRecord::Base.configurations
0
+ # case abcs[RAILS_ENV]["adapter"]
0
+ # when "mysql", "oci", "oracle"
0
+ # ActiveRecord::Base.establish_connection(abcs[RAILS_ENV])
0
+ # File.open("db/#{RAILS_ENV}_structure.sql", "w+") { |f| f << ActiveRecord::Base.connection.structure_dump }
0
+ # ENV['PGHOST'] = abcs[RAILS_ENV]["host"] if abcs[RAILS_ENV]["host"]
0
+ # ENV['PGPORT'] = abcs[RAILS_ENV]["port"].to_s if abcs[RAILS_ENV]["port"]
0
+ # ENV['PGPASSWORD'] = abcs[RAILS_ENV]["password"].to_s if abcs[RAILS_ENV]["password"]
0
+ # search_path = abcs[RAILS_ENV]["schema_search_path"]
0
+ # search_path = "--schema=#{search_path}" if search_path
0
+ # `pg_dump -i -U "#{abcs[RAILS_ENV]["username"]}" -s -x -O -f db/#{RAILS_ENV}_structure.sql #{search_path} #{abcs[RAILS_ENV]["database"]}`
0
+ # raise "Error dumping database" if $?.exitstatus == 1
0
+ # when "sqlite", "sqlite3"
0
+ # dbfile = abcs[RAILS_ENV]["database"] || abcs[RAILS_ENV]["dbfile"]
0
+ # `#{abcs[RAILS_ENV]["adapter"]} #{dbfile} .schema > db/#{RAILS_ENV}_structure.sql`
0
+ # `scptxfr /s #{abcs[RAILS_ENV]["host"]} /d #{abcs[RAILS_ENV]["database"]} /I /f db\\#{RAILS_ENV}_structure.sql /q /A /r`
0
+ # `scptxfr /s #{abcs[RAILS_ENV]["host"]} /d #{abcs[RAILS_ENV]["database"]} /I /F db\ /q /A /r`
0
+ # set_firebird_env(abcs[RAILS_ENV])
0
+ # db_string = firebird_db_string(abcs[RAILS_ENV])
0
+ # sh "isql -a #{db_string} > db/#{RAILS_ENV}_structure.sql"
0
+ # raise "Task not supported by '#{abcs["test"]["adapter"]}'"
0
+ def self.structure_dump(env = Mack.env, repis = :default)
0
+ adapter = repository(repis).adapter
0
+ output_file = File.join(Mack.root, "db", "#{env}_#{repis}_schema_structure.sql")
0
+ case adapter.class.name
0
+ sql = "SHOW FULL TABLES WHERE Table_type = 'BASE TABLE'"
0
+ adapter.query(sql).each do |res|
0
+ show = adapter.query("SHOW CREATE TABLE #{res}").first
0
+ structure += show.attributes["create table".to_sym]
0
+ File.open(output_file, "w") {|f| f.puts structure}
0
+ `pg_dump -i -U "#{uri.user}" -s -x -O -f #{output_file} #{uri.basename}`
0
+ # setup_temp(uri, "postgres")
0
+ # repository(:tmp) do |repo|
0
+ # puts "Creating (PostgreSQL): #{uri.basename}"
0
+ # repo.adapter.execute "CREATE DATABASE #{uri.basename} ENCODING = 'utf8'"
0
+ db_dir = File.join(Mack.root, "db")
0
+ `sqlite3 #{File.join(db_dir, uri.basename)} .schema > #{output_file}`
0
+ raise "Task not supported for '#{repository(repis).adapter.class.name}'"
0
def self.setup_temp(uri, adapter)