Method: Que::Migrations.migrate!

Defined in:
lib/que/migrations.rb

.migrate!(version:) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/que/migrations.rb', line 10

def migrate!(version:)
  Que.transaction do
    current = db_version

    if current == version
      return
    elsif current < version
      direction = :up
      steps = ((current + 1)..version).to_a
    elsif current > version
      direction = :down
      steps = ((version + 1)..current).to_a.reverse
    end

    steps.each do |step|
      filename = [
        File.dirname(__FILE__),
        'migrations',
        step,
        direction,
      ].join('/') << '.sql'
      Que.execute(File.read(filename))
    end

    set_db_version(version)
  end
end