class Radical::Migration
Public Class Methods
change(&block)
click to toggle source
# File lib/radical/migration.rb, line 6 def change(&block) @change = block end
create_table(name, &block)
click to toggle source
# File lib/radical/migration.rb, line 18 def create_table(name, &block) return drop_table(name) if @change && @rollback table = Table.new(name) block.call(table) "create table #{name} ( id integer primary key, #{table.columns.join(',')} )" end
down(&block)
click to toggle source
# File lib/radical/migration.rb, line 14 def down(&block) @down = block end
drop_table(name)
click to toggle source
# File lib/radical/migration.rb, line 28 def drop_table(name) "drop table #{name}" end
migrate!(db:, version:)
click to toggle source
# File lib/radical/migration.rb, line 32 def migrate!(db:, version:) db.execute(@change&.call || @up&.call) db.execute 'insert into radical_migrations (version) values (?)', [version] end
rollback!(db:, version:)
click to toggle source
# File lib/radical/migration.rb, line 37 def rollback!(db:, version:) @rollback = true db.execute(@change&.call || @down&.call) db.execute 'delete from radical_migrations where version = ?', [version] end
up(&block)
click to toggle source
# File lib/radical/migration.rb, line 10 def up(&block) @up = block end