Class: Rivulet::Steps::LoadDb

Inherits:
Rivulet::Step show all
Defined in:
lib/rivulet/steps/load_db.rb

Instance Method Summary collapse

Methods inherited from Rivulet::Step

container_class_path, inherited

Instance Method Details

#call(input) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/rivulet/steps/load_db.rb', line 7

def call(input)
  app = input[:resource]
  db_config = app.config.database
  return Failure("Rivulet.config.database.dsn is required") if db_config&.dsn.to_s.empty?

  pool = db_config.pool&.to_h || {}
  db   = Sequel.connect(db_config.dsn, **pool, logger: app.logger, sql_log_level: :debug)
  db.extension(:rivulet_telemetry)
  app.db = db

  Sequel::Model.db = db
  Sequel::Model.require_valid_table = false

  Success(input)
end