FIx some for connect to postgresql

This commit is contained in:
mahmood
2026-09-11 00:07:02 +03:30
parent 13c8eda4b2
commit c355165f0b
4 changed files with 95 additions and 13 deletions
+43 -2
View File
@@ -16,10 +16,51 @@ if [ ! -f node_modules/prisma/build/index.js ]; then
exit 1
fi
if [ -z "${DATABASE_URL:-}" ]; then
echo "[api] FATAL: DATABASE_URL is empty" >&2
exit 1
fi
# پسورد را در لاگ نشان نده — فقط host/port/db
echo "[api] DATABASE_URL (redacted)=$(node -e "try{const u=new URL(process.env.DATABASE_URL);u.password='***';console.log(u.toString())}catch(e){console.log('INVALID:'+e.message)}")"
echo "[api] REDIS_HOST=${REDIS_HOST:-unset} REDIS_PORT=${REDIS_PORT:-unset}"
echo "[api] running prisma migrate deploy..."
node node_modules/prisma/build/index.js migrate deploy --schema=./prisma/schema.prisma
echo "[api] probing postgres TCP (10s timeout)..."
node <<'NODE'
const net = require('net');
let u;
try {
u = new URL(process.env.DATABASE_URL);
} catch (e) {
console.error('[api] FATAL: invalid DATABASE_URL', e.message);
process.exit(1);
}
const host = u.hostname;
const port = Number(u.port || 5432);
const socket = net.connect({ host, port });
const timer = setTimeout(() => {
console.error(`[api] FATAL: TCP timeout to ${host}:${port} — سرویس postgres در شبکه compose در دسترس نیست`);
socket.destroy();
process.exit(1);
}, 10000);
socket.on('connect', () => {
clearTimeout(timer);
console.log(`[api] TCP OK ${host}:${port}`);
socket.end();
process.exit(0);
});
socket.on('error', (err) => {
clearTimeout(timer);
console.error(`[api] FATAL: TCP error ${host}:${port} → ${err.message}`);
process.exit(1);
});
NODE
echo "[api] running prisma migrate deploy (60s timeout)..."
if ! timeout 60 node node_modules/prisma/build/index.js migrate deploy --schema=./prisma/schema.prisma; then
echo "[api] FATAL: prisma migrate failed or timed out" >&2
exit 1
fi
echo "[api] migrate done"
echo "[api] launching app.js on 0.0.0.0:${PORT:-3000}"
+43 -2
View File
@@ -16,10 +16,51 @@ if [ ! -f node_modules/prisma/build/index.js ]; then
exit 1
fi
if [ -z "${DATABASE_URL:-}" ]; then
echo "[api] FATAL: DATABASE_URL is empty" >&2
exit 1
fi
# پسورد را در لاگ نشان نده — فقط host/port/db
echo "[api] DATABASE_URL (redacted)=$(node -e "try{const u=new URL(process.env.DATABASE_URL);u.password='***';console.log(u.toString())}catch(e){console.log('INVALID:'+e.message)}")"
echo "[api] REDIS_HOST=${REDIS_HOST:-unset} REDIS_PORT=${REDIS_PORT:-unset}"
echo "[api] running prisma migrate deploy..."
node node_modules/prisma/build/index.js migrate deploy --schema=./prisma/schema.prisma
echo "[api] probing postgres TCP (10s timeout)..."
node <<'NODE'
const net = require('net');
let u;
try {
u = new URL(process.env.DATABASE_URL);
} catch (e) {
console.error('[api] FATAL: invalid DATABASE_URL', e.message);
process.exit(1);
}
const host = u.hostname;
const port = Number(u.port || 5432);
const socket = net.connect({ host, port });
const timer = setTimeout(() => {
console.error(`[api] FATAL: TCP timeout to ${host}:${port} — سرویس postgres در شبکه compose در دسترس نیست`);
socket.destroy();
process.exit(1);
}, 10000);
socket.on('connect', () => {
clearTimeout(timer);
console.log(`[api] TCP OK ${host}:${port}`);
socket.end();
process.exit(0);
});
socket.on('error', (err) => {
clearTimeout(timer);
console.error(`[api] FATAL: TCP error ${host}:${port} → ${err.message}`);
process.exit(1);
});
NODE
echo "[api] running prisma migrate deploy (60s timeout)..."
if ! timeout 60 node node_modules/prisma/build/index.js migrate deploy --schema=./prisma/schema.prisma; then
echo "[api] FATAL: prisma migrate failed or timed out" >&2
exit 1
fi
echo "[api] migrate done"
echo "[api] launching app.js on 0.0.0.0:${PORT:-3000}"