Background
The README's Running locally section assumes Postgres but doesn't pin a minimum version, and there's no scaffolded local-Postgres setup committed to the repo.
The schema requires PostgreSQL 18+: migrations/20260519000001_init.sql uses the built-in uuidv7() function as a column default on users, rooms, and messages. On Postgres 17 or earlier, migrations fail at startup (and on sqlx::test) with function uuidv7() does not exist — this is not a Postgres extension, it's a function added to core in PG18.
docker-compose.yml is gitignored, but a committed example would shorten the time from git clone to a passing cargo test.
Asks
Acceptance criteria
- A reader with no prior context can go from clone to passing
cargo test using only the README and the example files.
- The Postgres version requirement is impossible to miss when reading setup instructions.
Background
The README's Running locally section assumes Postgres but doesn't pin a minimum version, and there's no scaffolded local-Postgres setup committed to the repo.
The schema requires PostgreSQL 18+:
migrations/20260519000001_init.sqluses the built-inuuidv7()function as a column default onusers,rooms, andmessages. On Postgres 17 or earlier, migrations fail at startup (and onsqlx::test) withfunction uuidv7() does not exist— this is not a Postgres extension, it's a function added to core in PG18.docker-compose.ymlis gitignored, but a committed example would shorten the time fromgit cloneto a passingcargo test.Asks
docker-compose.yaml.exampleat the repo root that brings up a Postgres 18 instance matching the defaultDATABASE_URLin.env.example. Include a README pointer coveringcp docker-compose.yaml.example docker-compose.ymlanddocker compose up -d.Acceptance criteria
cargo testusing only the README and the example files.