Class: Sequel::MigrationDSL

Inherits:
BasicObject
Defined in:
lib/sequel/extensions/migration.rb

Overview

Internal class used by the Sequel.migration DSL, part of the migration extension.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from BasicObject

const_missing

Constructor Details

#initialize(&block) ⇒ MigrationDSL

Create a new migration class, and instance_exec the block.


122
123
124
125
126
# File 'lib/sequel/extensions/migration.rb', line 122

def initialize(&block)
  @migration = SimpleMigration.new
  Migration.descendants << migration
  instance_exec(&block)
end

Instance Attribute Details

#migrationObject (readonly)

The underlying SimpleMigration instance


115
116
117
# File 'lib/sequel/extensions/migration.rb', line 115

def migration
  @migration
end

Class Method Details

.create(&block) ⇒ Object


117
118
119
# File 'lib/sequel/extensions/migration.rb', line 117

def self.create(&block)
  new(&block).migration
end

Instance Method Details

#change(&block) ⇒ Object

Creates a reversible migration. This is the same as creating the same block with up, but it also calls the block and attempts to create a down block that will reverse the changes made by the block.

There are no guarantees that this will work perfectly in all cases, but it works for some simple cases.


155
156
157
158
# File 'lib/sequel/extensions/migration.rb', line 155

def change(&block)
  migration.up = block
  migration.down = MigrationReverser.new.reverse(&block)
end

#down(&block) ⇒ Object

Defines the migration's down action.


129
130
131
# File 'lib/sequel/extensions/migration.rb', line 129

def down(&block)
  migration.down = block
end

#no_transactionObject

Disable the use of transactions for the related migration


134
135
136
# File 'lib/sequel/extensions/migration.rb', line 134

def no_transaction
  migration.use_transactions = false
end

#transactionObject

Enable the use of transactions for the related migration


139
140
141
# File 'lib/sequel/extensions/migration.rb', line 139

def transaction
  migration.use_transactions = true
end

#up(&block) ⇒ Object

Defines the migration's up action.


144
145
146
# File 'lib/sequel/extensions/migration.rb', line 144

def up(&block)
  migration.up = block
end