9d145865dd
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.
20 lines
1.3 KiB
Bash
Executable File
20 lines
1.3 KiB
Bash
Executable File
#!/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)"
|