namespace :db do

namespace :datamapper do
  desc "Migrate tables for DataMapper models (potentially destructive)"
  task :migrate => :environment do
    puts "Warning: Potentially Destructive Action!"
    puts "Data loss WILL occur in modified tables!"
    puts "Auto-Migrating models in 2 seconds..."
    sleep 2
    DataMapper.auto_migrate!
    puts "Done!"
  end

  desc "Upgrade tables to reflect DataMapper models"
  task :upgrade => :environment do
    puts "Auto-Upgrading models..."
    DataMapper.auto_upgrade!
    puts "Done!"
  end

  desc "Add hstore support" 
  task :hstore => :environment do
    puts "Adding hstore support..."
    DataMapper.repository.adapter.execute('CREATE EXTENSION hstore;')
    puts "Done!"
  end

  desc "Add postgis support" 
  task :postgis => :environment do
    puts "Adding postgis support..."
    DataMapper.repository.adapter.execute('CREATE EXTENSION postgis;')
    puts "Done!"
  end

  desc "Add postgis_topology support" 
  task :postgis_topology => :environment do
    puts "Adding postgis_topology support..."
    DataMapper.repository.adapter.execute('CREATE EXTENSION postgis_topology;')
    puts "Done!"
  end

  desc "Add postgis_tiger_geocoder support" 
  task :postgis_tiger_geocoder => :environment do
    puts "Adding postgis_tiger_geocoder support..."
    DataMapper.repository.adapter.execute('CREATE EXTENSION fuzzystrmatch;')
    DataMapper.repository.adapter.execute('CREATE EXTENSION postgis_tiger_geocoder;')
    puts "Done!"
  end
end

end