Mirrors how DATABASE_URL is loaded, so users can store both in their
local .env instead of passing PROD_DATABASE_URL inline each time.
https://claude.ai/code/session_01EiYh5ZiuWAnpo1PND45Yi1
Co-authored-by: Claude <noreply@anthropic.com>
* Add prod-to-dev database sync script
Adds scripts/sync-prod-db.sh and npm run db:sync-prod to safely copy
production data to the development database. After restoring, the script
nulls all Discord webhook URLs and anonymizes non-admin user PII (email,
name, avatar) to prevent notification leaks and reduce PII exposure on
developer machines. Admin accounts are preserved intact.
https://claude.ai/code/session_01EiYh5ZiuWAnpo1PND45Yi1
* Fix six code review issues in sync-prod-db.sh
- Add upfront check for pg_dump/pg_restore/psql availability (#5)
- Fix password masking to use sed instead of broken bash glob (#6)
- Replace DROP/CREATE DATABASE with pg_restore --clean --if-exists,
which works on managed cloud databases without superuser access (#2)
- Remove dead ADMIN_DB assignment that was immediately overwritten (#3)
- Handle pg_restore exit code 1 (non-fatal warnings) gracefully
instead of aborting via set -e (#1)
- Count webhook URLs before the UPDATE for an accurate cleared count (#4)
https://claude.ai/code/session_01EiYh5ZiuWAnpo1PND45Yi1
---------
Co-authored-by: Claude <noreply@anthropic.com>