Class: SequelRails::Migrations

Inherits:
Object
  • Object
show all
Defined in:
lib/sequel_rails/migrations.rb

Class Method Summary collapse

Class Method Details

.available_migrations?Boolean

Returns:

  • (Boolean)


46
47
48
# File 'lib/sequel_rails/migrations.rb', line 46

def available_migrations?
  File.exists?(migrations_dir) && Dir[File.join(migrations_dir, '*')].any?
end

.dump_schema_information(opts = {}) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/sequel_rails/migrations.rb', line 19

def dump_schema_information(opts={})
  sql = opts.fetch :sql
  db = ::Sequel::Model.db
  res = ""

  if available_migrations?
    migrator_class = ::Sequel::Migrator.send(:migrator_class, migrations_dir)
    migrator = migrator_class.new db, migrations_dir

    inserts = migrator.ds.map do |hash|
      insert = migrator.ds.insert_sql(hash)
      sql ? "#{insert};" : "    self << #{insert.inspect}"
    end

    if inserts.any?
      res << "Sequel.migration do\n  change do\n" unless sql
      res << inserts.join("\n")
      res << "\n  end\nend\n" unless sql
    end
  end
  res
end

.migrate(version = nil) ⇒ Object Also known as: migrate_up!, migrate_down!



6
7
8
9
10
# File 'lib/sequel_rails/migrations.rb', line 6

def migrate(version=nil)
  opts = {}
  opts[:target] = version.to_i if version
  ::Sequel::Migrator.run(::Sequel::Model.db, migrations_dir, opts)
end

.migrations_dirObject



42
43
44
# File 'lib/sequel_rails/migrations.rb', line 42

def migrations_dir
  Rails.root.join("db/migrate")
end

.pending_migrations?Boolean

Returns:

  • (Boolean)


14
15
16
17
# File 'lib/sequel_rails/migrations.rb', line 14

def pending_migrations?
  return false unless available_migrations?
  !::Sequel::Migrator.is_current?(::Sequel::Model.db, migrations_dir)
end