Module: Relay::Database

Extended by:
Database
Included in:
Database
Defined in:
app/init/database.rb

Instance Method Summary collapse

Instance Method Details

#connect!(env:) ⇒ Sequel::Database

Establishes a Sequel connection for the configured environment.

Parameters:

  • env (String)

Returns:

  • (Sequel::Database)


20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'app/init/database.rb', line 20

def connect!(env:)
  settings = load(env:)
  adapter = settings.fetch("adapter")
  database = settings.fetch("database")
  adapter = "sqlite" if adapter == "sqlite3"
  database = File.expand_path(database, Relay.home) unless database.start_with?("/")
  Sequel.connect(
    adapter:,
    database:,
    max_connections: settings.fetch("pool", 5),
    pool_timeout: settings.fetch("timeout", 5000) / 1000.0
  )
end

#load(env:) ⇒ Hash

Loads the database config for the given environment.

Parameters:

  • env (String)

Returns:

  • (Hash)


10
11
12
13
14
# File 'app/init/database.rb', line 10

def load(env:)
  erb = ERB.new(File.read(File.join(__dir__, "..", "..", "db", "config.yml")))
  config = YAML.safe_load(erb.result, aliases: true)
  config.fetch(env)
end