LendingHome/zero_downtime_migrations

View on GitHub
lib/zero_downtime_migrations/dsl.rb

Summary

Maintainability
A
0 mins
Test Coverage
module ZeroDowntimeMigrations
  module DSL
    attr_accessor :current, :data, :ddl, :index, :safe

    def data?
      !!@data
    end

    def ddl?
      !!@ddl
    end

    def index?
      !!@index
    end

    def migrating?
      !!@current
    end

    def mixed?
      [data?, ddl?, index?].select(&:itself).size > 1
    end

    def safe?
      !!@safe || ENV["SAFETY_ASSURED"].presence
    end

    def safety_assured
      Migration.safe = true
    end

    def unsafe?
      !safe?
    end
  end
end