class LolDba::Migration
Attributes
full_name[R]
writer[R]
Public Class Methods
new(migration_file)
click to toggle source
# File lib/lol_dba/sql_migrations/migration.rb, line 5 def initialize(migration_file) @full_name = File.basename(migration_file, '.rb') @writer = LolDba::Writer.new("#{@full_name}.sql") require Rails.root.join(migration_file) end
Public Instance Methods
connection()
click to toggle source
# File lib/lol_dba/sql_migrations/migration.rb, line 41 def connection ActiveRecord::Base.connection end
down()
click to toggle source
# File lib/lol_dba/sql_migrations/migration.rb, line 34 def down generate_instead_of_executing do migration_class.migrate(:down) connection.execute("DELETE FROM schema_migrations WHERE version = #{number}") end end
generate_instead_of_executing() { || ... }
click to toggle source
# File lib/lol_dba/sql_migrations/migration.rb, line 45 def generate_instead_of_executing migration_mocker = LolDba::MigrationMocker.new(writer) migration_mocker.redefine_migration_methods yield migration_mocker.reset_methods end
migration_class()
click to toggle source
# File lib/lol_dba/sql_migrations/migration.rb, line 23 def migration_class name.camelize.split('.')[0].constantize end
name()
click to toggle source
# File lib/lol_dba/sql_migrations/migration.rb, line 15 def name /^(\d+)_(.*)$/.match(full_name)[2] end
number()
click to toggle source
# File lib/lol_dba/sql_migrations/migration.rb, line 11 def number /^(\d+)_(.*)$/.match(full_name)[1] end
to_s()
click to toggle source
# File lib/lol_dba/sql_migrations/migration.rb, line 19 def to_s full_name end
up()
click to toggle source
# File lib/lol_dba/sql_migrations/migration.rb, line 27 def up generate_instead_of_executing do migration_class.migrate(:up) connection.execute("INSERT INTO schema_migrations (version) VALUES (#{number})") end end