lib/erd/migrator.rb in erd-0.6.3 vs lib/erd/migrator.rb in erd-0.6.4
- old
+ new
@@ -6,12 +6,14 @@
class MigrationError < StandardError; end
class Migrator
class << self
def status
+ migrations = []
migration_table_name = defined?(ActiveRecord::SchemaMigration) ? ActiveRecord::SchemaMigration.table_name : ActiveRecord::Migrator.schema_migrations_table_name
+ return migrations unless ActiveRecord::Base.connection.table_exists? migration_table_name
+
migrated_versions = ActiveRecord::Base.connection.select_values("SELECT version FROM #{migration_table_name}").map {|v| '%.3d' % v}
- migrations = []
ActiveRecord::Migrator.migrations_paths.each do |path|
Dir.foreach(Rails.root.join(path)) do |file|
if (version_and_name = /^(\d{3,})_(.+)\.rb$/.match(file))
status = migrated_versions.delete(version_and_name[1]) ? 'up' : 'down'
migrations << {:status => status, :version => version_and_name[1], :name => version_and_name[2], :filename => file}