lib/padrino-gen/padrino-tasks/sequel.rb in padrino-gen-0.11.2 vs lib/padrino-gen/padrino-tasks/sequel.rb in padrino-gen-0.11.3

- old
+ new

@@ -34,9 +34,45 @@ end end desc "Perform migration up to latest migration available" task :migrate => 'sq:migrate:up' + + desc "Create the database" + task :create => :environment do + config = Sequel::Model.db.opts + user, password, host = config[:user], config[:password], config[:host] + database = config[:database] + charset = config[:charset] || ENV['CHARSET'] || 'utf8' + collation = config[:collation] || ENV['COLLATION'] || 'utf8_unicode_ci' + + puts "=> Creating database '#{database}'" + if config[:adapter] == 'sqlite3' + ::Sequel.sqlite(database) + else + require 'padrino-gen/padrino-tasks/sql-helpers' + Padrino::Generators::SqlHelpers.create_db(config[:adapter], user, password, host, database, charset, collation) + end + puts "<= sq:create executed" + end + + desc "Drop the database (postgres and mysql only)" + task :drop => :environment do + config = ::Sequel::Model.db.opts + user, password, host, database = config[:user], config[:password], config[:host], config[:database] + + ::Sequel::Model.db.disconnect + + puts "=> Dropping database '#{database}'" + if config[:adapter] == 'sqlite3' + File.delete(database) if File.exist?(database) + else + Padrino::Generators::SqlHelpers.drop_db(config[:adapter], user, password, host, database) + end + puts "<= sq:drop executed" + end + end task 'db:migrate' => 'sq:migrate' + task 'db:reset' => ['sq:drop', 'sq:create', 'sq:migrate', 'seed'] end