mirror of
https://github.com/basecamp/once-campfire.git
synced 2026-10-10 00:30:13 +09:00
88acc4e026
Disable wal_autocheckpoint and run PASSIVE checkpoints from one elected writer process. Contenders start in console/rake (initializer), Puma workers (including WEB_CONCURRENCY=auto), and Resque children, with failover, capped error backoff, and tests for lock takeover. Co-authored-by: Thomas Klemm <github@tklemm.eu>
39 lines
1011 B
YAML
39 lines
1011 B
YAML
# SQLite. Versions 3.8.0 and up are supported.
|
|
# gem install sqlite3
|
|
#
|
|
# Ensure the SQLite 3 gem is defined in your Gemfile
|
|
# gem "sqlite3"
|
|
#
|
|
default: &default
|
|
adapter: sqlite3
|
|
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 10 } %>
|
|
timeout: 5000
|
|
default_transaction_mode: immediate
|
|
# Checkpoint on a background connection instead (SqliteWalCheckpoint). Every
|
|
# non-test writer process runs a contender so this is never left without one.
|
|
pragmas:
|
|
wal_autocheckpoint: 0
|
|
|
|
development:
|
|
primary:
|
|
<<: *default
|
|
database: storage/db/development.sqlite3
|
|
|
|
# Warning: The database defined as "test" will be erased and
|
|
# re-generated from your development database when you run "rake".
|
|
# Do not set this db to the same as development or production.
|
|
test:
|
|
primary:
|
|
<<: *default
|
|
database: storage/db/test.sqlite3
|
|
|
|
performance:
|
|
primary:
|
|
<<: *default
|
|
database: storage/db/performance.sqlite3
|
|
|
|
production:
|
|
primary:
|
|
<<: *default
|
|
database: storage/db/production.sqlite3
|