Sha256: e4899771bbd2aa3a76d8ee600c7945c42dd3d9ed8edf405ef86663ac3f8d8616

Contents?: true

Size: 951 Bytes

Versions: 3

Compression:

Stored size: 951 Bytes

Contents

require 'sequel'

Inferno::Application.boot(:db) do
  init do
    use :logging

    require 'yaml'

    Sequel::Model.plugin :json_serializer

    config_path = File.expand_path('database.yml', File.join(Dir.pwd, 'config'))
    config = YAML.load_file(config_path)[ENV['APP_ENV']]
      .merge(logger: Inferno::Application['logger'])
    connection = Sequel.connect(config)

    register('db.config', config)
    register('db.connection', connection)
  end

  start do
    Sequel.extension :migration
    db = Inferno::Application['db.connection']
    migration_path = File.join(Inferno::Application.root, 'lib', 'inferno', 'db', 'migrations')
    Sequel::Migrator.run(db, migration_path)

    if ENV['APP_ENV'] == 'development'
      schema_path = File.join(Inferno::Application.root, 'lib', 'inferno', 'db', 'schema.rb')
      db.extension :schema_dumper
      File.open(schema_path, 'w') { |f| f.print(db.dump_schema_migration) }
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
inferno_core-0.0.6 lib/inferno/config/boot/db.rb
inferno_core-0.0.5 lib/inferno/config/boot/db.rb
inferno_core-0.0.4 lib/inferno/config/boot/db.rb