Commit Graph

19 Commits

Author SHA1 Message Date
9adcfed28e docs: reorder readme content 2026-09-09 16:31:13 +02:00
68c1f03503 docs: capitalise the headings and the proper nouns
Sentence case for the headings, Django, Docker, Git and Rust where the
product is meant rather than the command, and SQL and URL as initialisms.
The role names `ahab status` prints stay lowercase, being names.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DFPds8Do63ZSRMwZ3guDyg
2026-09-09 15:58:27 +02:00
5d121b13b5 docs: say what changed about names, modes and what check looks at 2026-09-09 15:40:43 +02:00
75f293ce36 docs: bring the readme up to date with the commands that exist 2026-09-08 17:44:52 +02:00
4b1e9d68b0 feat: take the store root as an option 2026-09-08 12:00:52 +02:00
260ef24174 feat: add link restore 2026-09-08 11:34:22 +02:00
b2a0c08256 feat: add verbose and dry run 2026-09-08 11:27:26 +02:00
ad269308cc feat: dump in every format import understands 2026-09-08 11:13:22 +02:00
77703485b9 feat: support custom format, plain sql and cluster dumps 2026-09-08 11:12:49 +02:00
6e44527a9a feat: deprecate compose subcommand 2026-09-07 13:11:36 +00:00
9d63233d9a feat: detect the django and postgres services
ahab guessed that the django service is called django and the postgres one db,
falling back on AHAB_DJANGO_CONTAINER and AHAB_POSTGRES_CONTAINER. The standard
project layout happens to agree, but nothing enforces it, and a stack naming
them web and database could not use ahab without setting both variables.

One `docker compose config --format json` call, roughly 120ms, resolves the
stack even while it is down, and the services are identified from what they
are rather than what they are called:

- postgres is the service whose image is a postgres flavour, matching postg,
  timescale, pgvector or citus. Nothing else counts.
- django is the service that both builds an image and has
  DJANGO_SETTINGS_MODULE in its environment. A celery worker sharing the same
  build and env_file matches too, so published ports break the tie: the service
  answering requests wins.

Neither guess is allowed to be wrong quietly. No match, or two candidates that
cannot be told apart, is an error naming the services it looked at. There is no
variable to fall back on: both container variables are gone, along with the
guessed defaults they backed up, so an ambiguous stack is fixed in the compose
file rather than worked around per developer.

Every service lookup goes through these rules, so `compose exec` and the whole
django group agree on which container they mean.

POSTGRES_USER and POSTGRES_DB come off the detected service, so dropdb,
createdb, pg_restore and pg_dump stop assuming the role and database are both
literally `db`, falling back to that only when the service declares neither.

Note that env_file entries are merged into a service's environment, so
POSTGRES_* is not safe for identifying the database service: one such line in a
project's .env would make the django service match as well. That is why
identification uses the image and only credentials use the environment.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-07 13:11:35 +00:00
836bbaac08 feat: let docker compose find its own file 2026-09-07 15:06:17 +02:00
7d71dd054c docs: bring the readme up to date 2026-09-07 15:06:12 +02:00
54395f83e4 feat: add link command 2026-09-03 15:58:28 +02:00
2000204250 feat: update default service names 2026-02-24 08:52:08 -05:00
c8b3a817f0 chore: correctly document env variables in README 2025-02-12 16:52:09 +01:00
f56965abc2 chore: add completion and configuration to readme 2024-11-27 18:48:20 +01:00
0b0ca06398 chore: update README with install info
Added install instructions to README; both normal and debug install.
2023-11-27 20:40:37 +01:00
83c3b05d30 feat: add license, readme and update manifest file
Added empty README
Added MIT license
Updated Cargo.toml with some general info about the project
2023-05-21 23:02:03 +02:00