Sha256: 3468c30df1114de33af1134cd5780a22e8a168a63012e4634296bef4107c7730
Contents?: true
Size: 1.39 KB
Versions: 3
Compression:
Stored size: 1.39 KB
Contents
require 'rake' namespace :db do desc "Migrate the database through scripts in db/migrations." task :migrate => "mack:environment" do require 'migration_runner' include DataMapper::Types DataMapper::MigrationRunner.reset! migration_files.each { |mig| load mig } DataMapper::MigrationRunner.migrate_up! end # migrate desc "Rolls the schema back to the previous version. Specify the number of steps with STEP=n." task :rollback => ["mack:environment", "db:abort_if_pending_migrations"] do require 'dm-core/types' require 'migration_runner' include DataMapper::Types DataMapper::MigrationRunner.reset! migration_files.each { |mig| load mig } step = (ENV["STEP"] || 1).to_i migrations = DataMapper::MigrationRunner.migrations.sort.reverse step.times do |i| migrations[migrations.size - (i + 1)].perform_down end end # rollback desc "Raises an error if there are pending migrations." task :abort_if_pending_migrations do require 'dm-core/types' require 'migration_runner' migration_files.each { |mig| load mig } DataMapper::MigrationRunner.migrations.each do |mig| raise Mack::Errors::UnrunMigrations.new(mig.name) if mig.send("needs_up?") end DataMapper::MigrationRunner.migrations.clear end private def migration_files Dir.glob(File.join(Mack.root, "db", "migrations", "*.rb")) end end # db
Version data entries
3 entries across 3 versions & 1 rubygems