Class: Hummingbird::Database
- Inherits:
-
Object
- Object
- Hummingbird::Database
- Defined in:
- lib/hummingbird/database.rb
Instance Method Summary collapse
- #already_run_migrations ⇒ Object
-
#initialize(connection_string, migrations_table) ⇒ Database
constructor
A new instance of Database.
- #initialized? ⇒ Boolean
- #run_migration(name, sql) ⇒ Object
Constructor Details
#initialize(connection_string, migrations_table) ⇒ Database
Returns a new instance of Database.
5 6 7 8 9 |
# File 'lib/hummingbird/database.rb', line 5 def initialize(connection_string, migrations_table) @sequel_db = Sequel.connect(connection_string) @migrations_table_name = migrations_table @prepared_run_migration_insert = nil end |
Instance Method Details
#already_run_migrations ⇒ Object
15 16 17 |
# File 'lib/hummingbird/database.rb', line 15 def already_run_migrations initialized? ? @sequel_db[@migrations_table_name].order(:run_on).to_a : [] end |
#initialized? ⇒ Boolean
11 12 13 |
# File 'lib/hummingbird/database.rb', line 11 def initialized? @sequel_db.tables.include?(@migrations_table_name) end |
#run_migration(name, sql) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/hummingbird/database.rb', line 19 def run_migration(name,sql) @prepared_run_migration_insert ||= @sequel_db[@migrations_table_name].prepare(:insert, :record_migration, migration_name: :$name, run_on: :$date) @sequel_db.transaction do @sequel_db.execute(sql) @prepared_run_migration_insert.call(name: name, date: DateTime.now.strftime('%s')) end true end |