Sha256: 6ee6d2b4d62875148c125e72c1ab63526e739e2b9ed23c97c0502def85b18bf7

Contents?: true

Size: 1.18 KB

Versions: 3

Compression:

Stored size: 1.18 KB

Contents

require 'sequel/extensions/migration'

module SequelRails
  class Migrations
    class << self
      def migrate(version=nil)
        opts = {}
        opts[:target] = version.to_i if version
        ::Sequel::Migrator.run(::Sequel::Model.db, Rails.root.join("db/migrate"), opts)
      end
      alias_method :migrate_up!, :migrate
      alias_method :migrate_down!, :migrate

      def pending_migrations?
        return false unless File.exists?(Rails.root.join("db/migrate"))
        !::Sequel::Migrator.is_current?(::Sequel::Model.db, Rails.root.join("db/migrate"))
      end

      def dump_schema_information(opts={})
        sql = opts.fetch :sql
        db = ::Sequel::Model.db
        migrator = ::Sequel::TimestampMigrator.new db, "db/migrate"

        inserts = migrator.applied_migrations.map do |migration_name|
          insert = migrator.ds.insert_sql(migrator.column => migration_name)
          sql ? insert : "    self << #{insert.inspect}"
        end

        res = ""
        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
        res
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
sequel-rails-0.6.1 lib/sequel_rails/migrations.rb
sequel-rails-0.6.0 lib/sequel_rails/migrations.rb
sequel-rails-0.5.1 lib/sequel_rails/migrations.rb