Files
nntrivi2001 9d145865dd feat(lanes): per-lane database, Redis, and .env isolation (A1+A2)
Gives each lane its own slot-derived runtime (ports, detached process
lifecycle, profile-driven hooks) and its own database/Redis logical
index/.env file, so two lanes running the same repo's stack at once no
longer share state. Machine-level DB/Redis credentials live at
~/.ccam/secrets.env (mode 0600, never returned by any route); a hook's
output is redacted of that password (raw and URL-encoded forms) before
it reaches a log file or the lane_hook_output websocket broadcast.
Wired into provision/up/reset/remove; reset accepts --keep-db to skip
the drop/recreate/migrate/reseed block entirely.
2026-08-04 10:03:40 +07:00

20 lines
1.3 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
# ─────────────────────────────────────────────────────────────────────────────
# db-drop.sh Drop this lane's Postgres database inside a docker-compose
# service, via `dropdb --if-exists`. Ported verbatim from Shipyard's own
# lane-reset / lane-remove scripts. CCAM only ever calls this with a name it
# derived itself (server/lib/lane-services.js:dropDatabase), so this script
# never needs to re-validate its argument.
#
# Called as: db-drop.sh <db-name> (also available as $DB_NAME)
# Requires/provides: same as db-create.sh in this same directory.
# ─────────────────────────────────────────────────────────────────────────────
# @author Nguyễn Ngọc Trí Vĩ <vinnt@smartgift.vn>
set -euo pipefail
NAME="${1:-$DB_NAME}"
[ -n "$NAME" ] || { echo "db-drop: no database name given" >&2; exit 1; }
docker compose -f "$COMPOSE_FILE" exec -T "$DB_SERVICE" dropdb --if-exists -U "$PG_USER" "$NAME"
echo "db-drop: dropped $NAME (if it existed)"