Sha256: 48fef39b62b879fff1cc1e6355b5f4b8d98e7a4364ca18951551e43a926dd20d
Contents?: true
Size: 1.39 KB
Versions: 2
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
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
mack-data_mapper-0.6.0 | lib/tasks/db_migration_tasks.rake |
mack-data_mapper-0.6.0.1 | lib/tasks/db_migration_tasks.rake |