Decouple per-service Alembic migrations and fix cross-DB queries
Each service (blog, market, cart, events, federation, account) now owns its own database schema with independent Alembic migrations. Removes the monolithic shared/alembic/ that ran all migrations against a single DB. - Add per-service alembic.ini, env.py, and 0001_initial.py migrations - Add shared/db/alembic_env.py helper with table-name filtering - Fix cross-DB FK in blog/models/snippet.py (users lives in db_account) - Fix cart_impl.py cross-DB queries: fetch products and market_places via internal data endpoints instead of direct SQL joins - Fix blog ghost_sync to fetch page_configs from cart via data endpoint - Add products-by-ids and page-config-ensure data endpoints - Update all entrypoint.sh to create own DB and run own migrations - Cart now uses db_cart instead of db_market - Add docker-compose.dev.yml, dev.sh for local development - CI deploys both rose-ash swarm stack and rose-ash-dev compose stack - Fix Quart namespace package crash (root_path in factory.py) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
51
dev.sh
Executable file
51
dev.sh
Executable file
@@ -0,0 +1,51 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# Dev mode: run services with bind-mounted source code + auto-reload
|
||||
# Usage:
|
||||
# ./dev.sh # Start all services
|
||||
# ./dev.sh blog market # Start specific services (+ infra)
|
||||
# ./dev.sh --build blog # Rebuild image first, then start
|
||||
# ./dev.sh down # Stop everything
|
||||
# ./dev.sh logs blog # Tail logs for a service
|
||||
|
||||
COMPOSE="docker compose -p rose-ash-dev -f docker-compose.yml -f docker-compose.dev.yml"
|
||||
INFRA_SERVICES="db pgbouncer redis redis-auth"
|
||||
|
||||
case "${1:-up}" in
|
||||
down)
|
||||
$COMPOSE down
|
||||
;;
|
||||
logs)
|
||||
shift
|
||||
$COMPOSE logs -f "$@"
|
||||
;;
|
||||
build)
|
||||
shift
|
||||
if [[ $# -eq 0 ]]; then
|
||||
$COMPOSE build
|
||||
else
|
||||
$COMPOSE build "$@"
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
# Collect flags and service names
|
||||
BUILD_FLAG=""
|
||||
SERVICES=()
|
||||
for arg in "$@"; do
|
||||
if [[ "$arg" == "--build" ]]; then
|
||||
BUILD_FLAG="--build"
|
||||
else
|
||||
SERVICES+=("$arg")
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ ${#SERVICES[@]} -eq 0 ]]; then
|
||||
# Start everything
|
||||
$COMPOSE up $BUILD_FLAG
|
||||
else
|
||||
# Start infra + requested app services
|
||||
$COMPOSE up $BUILD_FLAG $INFRA_SERVICES "${SERVICES[@]}"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
Reference in New Issue
Block a user