namespace :postgresql do desc 'Build the PostgreSQL test databases' task :build_databases => :load_connection do sh %{ createdb "#{GEM_NAME}_unittest" } sh %{ psql "#{GEM_NAME}_unittest" -f #{File.join(SCHEMA_PATH, 'postgresql.sql')} } end desc 'Drop the PostgreSQL test databases' task :drop_databases => :load_connection do sh %{ dropdb "#{GEM_NAME}_unittest" } end desc 'Rebuild the PostgreSQL test databases' task :rebuild_databases => [:drop_databases, :build_databases] task :load_connection do require File.join(PROJECT_ROOT, %w[lib adapter_helper postgresql]) spec = AdapterHelper::Postgresql.load_connection_from_env options = {} options['u'] = spec[:username] if spec[:username] options['p'] = spec[:password] if spec[:password] options_str = options.map { |key, value| "-#{key}#{value}" }.join(" ") ENV['cpk_adapter_options_str'] = options_str end end