0
@@ -2,63 +2,50 @@ namespace :db do
0
desc "Migrate the database through scripts in db/migrations"
0
task :migrate => "db:schema:create" do
0
- require 'data_mapper/migration'
0
- schema_info = data_mapper_schema_info
0
- elsif using_active_record?
0
- require 'active_record/migration'
0
- schema_info = active_record_schema_info
0
migration_files.each do |migration|
0
migration = File.basename(migration, ".rb")
0
m_number = migration_number(migration)
0
- if m_number >
schema_info.version
0
+ if m_number >
@schema_info.version
0
migration_name(migration).camelcase.constantize.up
0
- schema_info.version += 1
0
+ @schema_info.version += 1
0
desc "Rolls the schema back to the previous version. Specify the number of steps with STEP=n"
0
- task :rollback => "db:schema:create" do
0
- require 'data_mapper/migration'
0
- schema_info = data_mapper_schema_info
0
- elsif using_active_record?
0
- require 'active_record/migration'
0
- schema_info = active_record_schema_info
0
+ task :rollback => ["db:schema:create", "db:abort_if_pending_migrations"] do
0
migrations = migration_files.reverse
0
(ENV["STEP"] || 1).to_i.times do |step|
0
migration = migrations[step]
0
migration = File.basename(migration, ".rb")
0
m_number = migration_number(migration)
0
- # if m_number > schema_info.version
0
- # raise Mack::Errors::UnrunMigrations.new(m_number - schema_info.version)
0
- if m_number == schema_info.version
0
+ if m_number == @schema_info.version
0
migration_name(migration).camelcase.constantize.down
0
- schema_info.version -= 1
0
+ @schema_info.version -= 1
0
- task :version => "db:schema:create" do
0
- schema_info = data_mapper_schema_info
0
- elsif using_active_record?
0
- schema_info = active_record_schema_info
0
+ desc "Raises an error if there are pending migrations"
0
+ task :abort_if_pending_migrations do
0
+ migrations = migration_files.reverse
0
+ return if migrations.empty?
0
+ migration = migrations.first
0
+ migration = File.basename(migration, ".rb")
0
+ m_number = migration_number(migration)
0
+ if m_number > @schema_info.version
0
+ raise Mack::Errors::UnrunMigrations.new(m_number - @schema_info.version)
0
- puts "\nYour database is currently at version: #{schema_info.version}\n"
0
+ desc "Displays the current schema version of your database"
0
+ task :version => "db:schema:create" do
0
+ puts "\nYour database is currently at version: #{@schema_info.version}\n"
0
@@ -71,6 +58,7 @@ namespace :db do
0
DmSchemaInfo.table.create!
0
DmSchemaInfo.create(:version => 0)
0
+ @schema_info = DmSchemaInfo.first
0
elsif using_active_record?
0
require 'active_record/migration'
0
class CreateArSchemaInfo < ActiveRecord::Migration # :nodoc:
0
@@ -84,6 +72,7 @@ namespace :db do
0
ArSchemaInfo.create(:version => 0)
0
+ @schema_info = ArSchemaInfo.find(:first)
0
@@ -102,12 +91,4 @@ namespace :db do
0
migration.match(/^\d+_(.+)/).captures.last
0
- def data_mapper_schema_info
0
- end # data_mapper_schema_info
0
- def active_record_schema_info
0
- ArSchemaInfo.find(:first)
0
- end # active_record_schema_info
0
\ No newline at end of file
Comments
No one has commented yet.