Class: DBGeni::MigrationList
- Inherits:
-
Object
- Object
- DBGeni::MigrationList
- Defined in:
- lib/dbgeni/migration_list.rb
Instance Attribute Summary collapse
-
#migration_directory ⇒ Object
readonly
Returns the value of attribute migration_directory.
-
#migrations ⇒ Object
readonly
Returns the value of attribute migrations.
Class Method Summary collapse
-
.new_dml_migrations(migration_directory) ⇒ Object
This is a bit of a hack.
Instance Method Summary collapse
-
#applied(config, connection) ⇒ Object
Returns an array of MIGRATIONS that have been applied ordered by oldest first.
- #applied_and_broken(config, connection) ⇒ Object
-
#initialize(migration_directory) ⇒ MigrationList
constructor
A new instance of MigrationList.
- #list(list_of_migrations, config, connection) ⇒ Object
- #migrations_with_status(config, connection, *args) ⇒ Object
- #outstanding(config, connection) ⇒ Object
Constructor Details
permalink #initialize(migration_directory) ⇒ MigrationList
Returns a new instance of MigrationList.
19 20 21 22 |
# File 'lib/dbgeni/migration_list.rb', line 19 def initialize(migration_directory) @migration_directory = migration_directory file_list end |
Instance Attribute Details
permalink #migration_directory ⇒ Object (readonly)
Returns the value of attribute migration_directory.
6 7 8 |
# File 'lib/dbgeni/migration_list.rb', line 6 def migration_directory @migration_directory end |
permalink #migrations ⇒ Object (readonly)
Returns the value of attribute migrations.
5 6 7 |
# File 'lib/dbgeni/migration_list.rb', line 5 def migrations @migrations end |
Class Method Details
permalink .new_dml_migrations(migration_directory) ⇒ Object
This is a bit of a hack. DML migrations reuse all of migrations, infact they were forced in later as an afterthought, so each migration will initially have a type of ‘Migration’. This changes it to DML.
11 12 13 14 15 16 17 |
# File 'lib/dbgeni/migration_list.rb', line 11 def self.new_dml_migrations(migration_directory) obj = self.new(migration_directory) obj.migrations.each do |m| m.migration_type = 'DML' end obj end |
Instance Method Details
permalink #applied(config, connection) ⇒ Object
Returns an array of MIGRATIONS that have been applied ordered by oldest first
26 27 28 |
# File 'lib/dbgeni/migration_list.rb', line 26 def applied(config, connection) migrations_with_status(config, connection, DBGeni::Migration::COMPLETED) end |
permalink #applied_and_broken(config, connection) ⇒ Object
[View source]
38 39 40 41 42 43 |
# File 'lib/dbgeni/migration_list.rb', line 38 def applied_and_broken(config, connection) migrations_with_status(config, connection, DBGeni::Migration::COMPLETED, DBGeni::Migration::FAILED, DBGeni::Migration::PENDING) end |
permalink #list(list_of_migrations, config, connection) ⇒ Object
[View source]
45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/dbgeni/migration_list.rb', line 45 def list(list_of_migrations, config, connection) valid_migrations = [] list_of_migrations.each do |m| mig_obj = Migration.initialize_from_internal_name(@migration_directory, m) if i = @migrations.index(mig_obj) valid_migrations.push @migrations[i] else raise DBGeni::MigrationFileNotExist, m end end valid_migrations.sort {|x,y| x.migration_file <=> y.migration_file } end |
permalink #migrations_with_status(config, connection, *args) ⇒ Object
[View source]
61 62 63 64 65 66 67 |
# File 'lib/dbgeni/migration_list.rb', line 61 def migrations_with_status(config, connection, *args) migrations = @migrations.select{|m| args.include? m.status(config, connection) }.sort {|x,y| x.migration_file <=> y.migration_file } end |
permalink #outstanding(config, connection) ⇒ Object
[View source]
30 31 32 33 34 35 36 |
# File 'lib/dbgeni/migration_list.rb', line 30 def outstanding(config, connection) migrations_with_status(config, connection, DBGeni::Migration::NEW, DBGeni::Migration::ROLLEDBACK, DBGeni::Migration::FAILED, DBGeni::Migration::PENDING) end |