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.

Constant Summary

Constants inherited from BasicObject

BasicObject::KEEP_METHODS

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from BasicObject

const_missing, remove_methods!

Constructor Details

#initialize(&block) ⇒ MigrationDSL

Create a new migration class, and instance_eval the block.



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

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

Instance Attribute Details

#migrationObject (readonly)

The underlying Migration instance



110
111
112
# File 'lib/sequel/extensions/migration.rb', line 110

def migration
  @migration
end

Class Method Details

.create(&block) ⇒ Object



112
113
114
# File 'lib/sequel/extensions/migration.rb', line 112

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 should work for most common cases.



150
151
152
153
# File 'lib/sequel/extensions/migration.rb', line 150

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

#down(&block) ⇒ Object

Defines the migration’s down action.



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

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

#no_transactionObject

Disable the use of transactions for the related migration



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

def no_transaction
  migration.use_transactions = false
end

#transactionObject

Enable the use of transactions for the related migration



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

def transaction
  migration.use_transactions = true
end

#up(&block) ⇒ Object

Defines the migration’s up action.



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

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