Class: Slick::Database::Migrator
- Defined in:
- lib/slick/database/migrator.rb
Instance Method Summary collapse
- #current_schema_version ⇒ Object
-
#initialize(database) ⇒ Migrator
constructor
A new instance of Migrator.
- #latest_schema_version ⇒ Object
- #migrate(to_schema_version = latest_schema_version) ⇒ Object
Constructor Details
#initialize(database) ⇒ Migrator
Returns a new instance of Migrator.
4 5 6 7 8 9 10 |
# File 'lib/slick/database/migrator.rb', line 4 def initialize(database) @database = database if !database.slick_applied_migrations.exist? database.slick_applied_migrations.add_column(:schema_version, :integer) end end |
Instance Method Details
#current_schema_version ⇒ Object
12 13 14 15 16 17 18 19 |
# File 'lib/slick/database/migrator.rb', line 12 def current_schema_version slick_applied_migration = @database.slick_applied_migrations.order_by(:schema_version, :desc).first(:cache => "schema") if slick_applied_migration slick_applied_migration.schema_version else -1 end end |
#latest_schema_version ⇒ Object
21 22 23 |
# File 'lib/slick/database/migrator.rb', line 21 def latest_schema_version migrations.length > 0 ? migrations.last.schema_version : -1 end |
#migrate(to_schema_version = latest_schema_version) ⇒ Object
25 26 27 28 29 30 31 32 33 |
# File 'lib/slick/database/migrator.rb', line 25 def migrate(to_schema_version = latest_schema_version) if to_schema_version > current_schema_version migrate_up(to_schema_version) elsif to_schema_version < current_schema_version migrate_down(to_schema_version) else puts "Migrations up-to-date" end end |