class Sequel::MigrationDSL

  1. lib/sequel/extensions/migration.rb
Superclass: BasicObject

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

Methods

Public Class

  1. create
  2. new

Public Instance

  1. change
  2. down
  3. migration
  4. no_transaction
  5. revert
  6. transaction
  7. up

Attributes

migration [R]

The underlying SimpleMigration instance

Public Class methods

create(&block)
[show source]
    # File lib/sequel/extensions/migration.rb
120 def self.create(&block)
121   new(&block).migration
122 end
new(&block)

Create a new migration class, and instance_exec the block.

[show source]
    # File lib/sequel/extensions/migration.rb
125 def initialize(&block)
126   @migration = SimpleMigration.new
127   Migration.descendants << migration
128   instance_exec(&block)
129 end

Public Instance methods

change(&block)

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.

[show source]
    # File lib/sequel/extensions/migration.rb
158 def change(&block)
159   migration.up = block
160   migration.down = MigrationReverser.new.reverse(&block)
161 end
down(&block)

Defines the migration’s down action.

[show source]
    # File lib/sequel/extensions/migration.rb
132 def down(&block)
133   migration.down = block
134 end
no_transaction()

Disable the use of transactions for the related migration

[show source]
    # File lib/sequel/extensions/migration.rb
137 def no_transaction
138   migration.use_transactions = false
139 end
revert(&block)

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

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

[show source]
    # File lib/sequel/extensions/migration.rb
171 def revert(&block)
172   migration.down = block
173   migration.up = MigrationReverser.new.reverse(&block)
174 end
transaction()

Enable the use of transactions for the related migration

[show source]
    # File lib/sequel/extensions/migration.rb
142 def transaction
143   migration.use_transactions = true
144 end
up(&block)

Defines the migration’s up action.

[show source]
    # File lib/sequel/extensions/migration.rb
147 def up(&block)
148   migration.up = block
149 end