Sha256: e7806ef9559b1cda76df0773fb259d446cbabb010e2e111ab5c1a8b02992ac55

Contents?: true

Size: 869 Bytes

Versions: 2

Compression:

Stored size: 869 Bytes

Contents

module Hanami
  module Sequel
    module CLI
      class Seed < Hanami::CLI::Command
        def call(**options)
          Command.seed(options)
        end
      end
    end

    module Command
      def self.seed(**options)
        Hanami::Environment.new             # load DATABASE_URL

        require 'sequel'

        log = Logger.new($stdout)
        db = ::Sequel.connect(ENV.fetch('DATABASE_URL'),
                              loggers: log)
        ::Sequel::Model.db = db

        path = File.join('.', CLI.models_path, '*_model.rb')
        log.level = Logger::WARN
        Dir[path].each { |m| require m }
        log.level = Logger::INFO

        db.transaction do
          s = Hanami::Sequel::Seed
          s.methods(false).each { |m| s.send(m) }
        end
      end
    end

  end
end

Hanami::CLI.register 'sequel seed', Hanami::Sequel::CLI::Seed

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
hanami-sequel-1.1.1 lib/hanami/sequel/commands/seed.rb
hanami-sequel-1.1.0.1 lib/hanami/sequel/commands/seed.rb