class DataMigrate::StatusService

Public Class Methods

dump(connection = ActiveRecord::Base.connection, stream = $stdout) click to toggle source
# File lib/data_migrate/status_service.rb, line 6
def dump(connection = ActiveRecord::Base.connection, stream = $stdout)
  new(connection).dump(stream)
  stream
end
new(connection) click to toggle source
# File lib/data_migrate/status_service.rb, line 12
def initialize(connection)
  @connection = connection
end

Public Instance Methods

dump(stream) click to toggle source
# File lib/data_migrate/status_service.rb, line 20
def dump(stream)
  output(stream)
end
root_folder() click to toggle source
# File lib/data_migrate/status_service.rb, line 16
def root_folder
  Rails.root
end

Private Instance Methods

database_name() click to toggle source
# File lib/data_migrate/status_service.rb, line 46
def database_name
  if Gem::Dependency.new("railties", "~> 7.0").match?("railties", Gem.loaded_specs["railties"].version)
    ActiveRecord::Base.connection_db_config.configuration_hash[:database]
  elsif Gem::Dependency.new("railties", "~> 6.1").match?("railties", Gem.loaded_specs["railties"].version)
    ActiveRecord::Base.connection_config[:database]
  end
end
db_list() click to toggle source
# File lib/data_migrate/status_service.rb, line 54
def db_list
  DataMigrate::DataMigrator.migrations_status
end
output(stream) click to toggle source
# File lib/data_migrate/status_service.rb, line 30
def output(stream)
  unless DataMigrate::RailsHelper.data_schema_migration.table_exists?
    stream.puts "Data migrations table does not exist yet."
    return
  end

  # output
  stream.puts "\ndatabase: #{database_name}\n\n"
  stream.puts "#{"Status".center(8)}  #{"Migration ID".ljust(14)}  Migration Name"
  stream.puts "-" * 50
  db_list.each do |status, version, name|
    stream.puts "#{status.center(8)}  #{version.ljust(14)}  #{name}"
  end
  stream.puts
end
table_name() click to toggle source
# File lib/data_migrate/status_service.rb, line 26
def table_name
  DataMigrate::RailsHelper.data_schema_migration.table_name
end