Sha256: 93a1a51f1fc729578da98a4304160cf78c15d420b7fd9e2ec3af6b04d00fc93f
Contents?: true
Size: 1.34 KB
Versions: 11
Compression:
Stored size: 1.34 KB
Contents
require 'pathname' require 'rom/types' require 'rom/initializer' module ROM module SQL module Migration # @api private class Migrator extend Initializer DEFAULT_PATH = 'db/migrate'.freeze VERSION_FORMAT = '%Y%m%d%H%M%S'.freeze param :connection option :path, type: ROM::Types.Definition(Pathname), reader: true, default: proc { DEFAULT_PATH } # @api private def run(options = {}) Sequel::Migrator.run(connection, path.to_s, options) end # @api private def pending? !Sequel::Migrator.is_current?(connection, path.to_s) end # @api private def migration(&block) Sequel.migration(&block) end # @api private def create_file(name, version = generate_version) filename = "#{version}_#{name}.rb" dirname = Pathname(path) fullpath = dirname.join(filename) FileUtils.mkdir_p(dirname) File.write(fullpath, migration_file_content) fullpath end # @api private def generate_version Time.now.utc.strftime(VERSION_FORMAT) end # @api private def migration_file_content File.read(Pathname(__FILE__).dirname.join('template.rb').realpath) end end end end end
Version data entries
11 entries across 11 versions & 1 rubygems