Sha256: 02407cae8cebc040748977cfe4448a67332b2fa373118e6936391b643d1c09fc

Contents?: true

Size: 1.6 KB

Versions: 36

Compression:

Stored size: 1.6 KB

Contents

require 'rake/tasklib'

=begin

require 'pact_broker/tasks'

PactBroker::DB::MigrationTask.new do | task |
  require 'my_app/db'
  task.database_connection = MyApp::DB
end

=end

module PactBroker
  module DB
    class MigrationTask < ::Rake::TaskLib

      attr_accessor :database_connection
      attr_accessor :options

      def initialize &block
        @options = {}
        rake_task &block
      end

      def rake_task &block
        namespace :pact_broker do
          namespace :db do
            desc "Run sequel migrations for pact broker database"
            task :migrate, [:target] do | t, args |
              require 'pact_broker/db/migrate'
              require 'pact_broker/db/version'

              instance_eval(&block)

              if args[:target]
                options[:target] = args[:target].to_i
              end

              if (logger = database_connection.loggers.first)
                current_version = PactBroker::DB::Version.call(database_connection)
                if options[:target]
                  logger.info "Migrating from schema version #{current_version} to #{options[:target]}"
                else
                  logger.info "Migrating from schema version #{current_version} to latest"
                end
              end

              PactBroker::DB::Migrate.call(database_connection, options)

              if logger
                current_version = PactBroker::DB::Version.call(database_connection)
                logger.info "Current schema version is now #{current_version}"
              end
            end
          end
        end
      end
    end
  end
end

Version data entries

36 entries across 36 versions & 1 rubygems

Version Path
pact_broker-2.79.1 lib/pact_broker/tasks/migration_task.rb
pact_broker-2.79.0 lib/pact_broker/tasks/migration_task.rb
pact_broker-2.78.1 lib/pact_broker/tasks/migration_task.rb
pact_broker-2.78.0 lib/pact_broker/tasks/migration_task.rb
pact_broker-2.77.0 lib/pact_broker/tasks/migration_task.rb
pact_broker-2.76.2 lib/pact_broker/tasks/migration_task.rb
pact_broker-2.76.1 lib/pact_broker/tasks/migration_task.rb
pact_broker-2.76.0 lib/pact_broker/tasks/migration_task.rb
pact_broker-2.75.0 lib/pact_broker/tasks/migration_task.rb
pact_broker-2.74.1 lib/pact_broker/tasks/migration_task.rb
pact_broker-2.74.0 lib/pact_broker/tasks/migration_task.rb
pact_broker-2.73.0 lib/pact_broker/tasks/migration_task.rb
pact_broker-2.72.0 lib/pact_broker/tasks/migration_task.rb
pact_broker-2.71.0 lib/pact_broker/tasks/migration_task.rb
pact_broker-2.70.0 lib/pact_broker/tasks/migration_task.rb
pact_broker-2.69.0 lib/pact_broker/tasks/migration_task.rb
pact_broker-2.68.1 lib/pact_broker/tasks/migration_task.rb
pact_broker-2.68.0 lib/pact_broker/tasks/migration_task.rb
pact_broker-2.67.0 lib/pact_broker/tasks/migration_task.rb
pact_broker-2.66.0 lib/pact_broker/tasks/migration_task.rb