fix: move PG version check before servicesFlag guard
The version check was after the early-exit guard, so if services were already running it never triggered. Now it runs first, stopping and reinitializing the cluster before checking the flag.
This commit is contained in:
parent
33cb8ca769
commit
38b7fb00f1
1 changed files with 10 additions and 10 deletions
|
|
@ -53,13 +53,9 @@ let
|
|||
|
||||
echo "🚀 Starting development services..."
|
||||
|
||||
# Check if already started
|
||||
if [ -f "${servicesFlag}" ]; then
|
||||
echo "✓ Services already running (remove ${servicesFlag} to force restart)"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Check if cluster needs reinitialization (PG extensions or version changed)
|
||||
# Check if PG version/extensions changed and reinit if needed.
|
||||
# Must run BEFORE the servicesFlag guard so already-running clusters
|
||||
# get reinitialized when extensions or versions change.
|
||||
pg_needs_reinit=false
|
||||
if [ -d "${pgDataDir}" ] && [ -f "${pgVersionFile}" ]; then
|
||||
if [ "$(cat ${pgVersionFile})" != "${pg}" ]; then
|
||||
|
|
@ -68,18 +64,22 @@ let
|
|||
fi
|
||||
fi
|
||||
if [ -d "${pgDataDir}" ] && [ ! -f "${pgVersionFile}" ]; then
|
||||
# Legacy cluster without version file, reinit to be safe
|
||||
pg_needs_reinit=true
|
||||
fi
|
||||
|
||||
if $pg_needs_reinit; then
|
||||
echo "🗑️ Removing old PostgreSQL cluster..."
|
||||
# Stop if running
|
||||
echo "🗑️ Stopping old PostgreSQL and removing cluster..."
|
||||
${pg}/bin/pg_ctl -D ${pgDataDir} stop -m fast 2>/dev/null || true
|
||||
rm -rf ${pgDataDir}
|
||||
rm -f ${servicesFlag}
|
||||
fi
|
||||
|
||||
# Check if already started (with correct version)
|
||||
if [ -f "${servicesFlag}" ]; then
|
||||
echo "✓ Services already running (remove ${servicesFlag} to force restart)"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Initialize PostgreSQL if needed
|
||||
if [ ! -d "${pgDataDir}" ]; then
|
||||
echo "📦 Initializing PostgreSQL database..."
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue