Sha256: e24dd42675d1457cd0b3281eddda8c89e3f01232dc250ff90bfeee24218d8e9e

Contents?: true

Size: 1.15 KB

Versions: 8

Compression:

Stored size: 1.15 KB

Contents

# frozen_string_literal: true

require "sequel/timestamp_migrator_undo_extension"

namespace :sequel do
  desc "Rollback migrations that were applied earlier but are not present in current release"
  task rollback_archived_migrations: :environment do
    DB.log_info("Finding applied migrations not present in current release...")

    Dir.mktmpdir do |tmpdir|
      DB[:schema_migrations_sources].each do |migration|
        path = File.join(tmpdir, migration.fetch(:filename))
        File.write(path, migration.fetch(:source))
      end

      migrator = Sequel::TimestampMigrator.new(DB, tmpdir, allow_missing_migration_files: true)

      applied_migrations = migrator.applied_migrations.map(&:to_i)
      filesystem_migrations = Rails.root.glob("db/migrate/*.rb").map { |x| File.basename(x).to_i }
      missing_migrations = applied_migrations - filesystem_migrations

      if missing_migrations.any?
        missing_migrations.each do |migration|
          DB.log_info("Rolling back migration #{migration}...")
          migrator.undo(migration)
        end
      else
        DB.log_info("No migrations found")
        "No migrations found"
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
umbrellio-sequel-plugins-0.14.0.189 lib/tasks/sequel/rollback_archived_migrations.rake
umbrellio-sequel-plugins-0.14.0.188 lib/tasks/sequel/rollback_archived_migrations.rake
umbrellio-sequel-plugins-0.14.0.187 lib/tasks/sequel/rollback_archived_migrations.rake
umbrellio-sequel-plugins-0.14.0 lib/tasks/sequel/rollback_archived_migrations.rake
umbrellio-sequel-plugins-0.13.0.185 lib/tasks/sequel/rollback_archived_migrations.rake
umbrellio-sequel-plugins-0.13.0.172 lib/tasks/sequel/rollback_archived_migrations.rake
umbrellio-sequel-plugins-0.13.0 lib/tasks/sequel/rollback_archived_migrations.rake
umbrellio-sequel-plugins-0.12.0.169 lib/tasks/sequel/rollback_archived_migrations.rake