- Реструктуризация: src/ разбит на middleware/, utils/, repositories/ (удалены), routes/ (удалены) - Добавлен src/original-html.ts — полный HTML с reportModal - Добавлен src/index.tsx.backup — React-компонент с reportModal - Миграции переименованы (0001_initial_schema.sql) - Добавлена миграция 0018 (удалена позже) - Docker: multi-stage build, wrangler.toml - Frontend: public/static/app.js + style.css - seed.sql добавлен - Документация: CHANGELOG, CHANGES_v4.1.0-4.1.9, PROJECT_STRUCTURE
62 lines
1.7 KiB
Bash
Executable File
62 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
PORT="${PORT:-3000}"
|
|
D1_BINDING="${D1_BINDING:-aknaproff-db}"
|
|
PERSIST_PATH="${PERSIST_PATH:-/data}"
|
|
SEED_DATA="${SEED_DATA:-false}"
|
|
SEED_SENTINEL="${PERSIST_PATH}/.seeded"
|
|
SKIP_MIGRATIONS="${SKIP_MIGRATIONS:-true}" # ⚠️ По умолчанию пропускаем миграции!
|
|
|
|
mkdir -p "${PERSIST_PATH}"
|
|
export WRANGLER_SEND_METRICS="${WRANGLER_SEND_METRICS:-false}"
|
|
|
|
apply_migrations() {
|
|
if [[ "${SKIP_MIGRATIONS,,}" == "true" ]]; then
|
|
echo "[entrypoint] Skipping migrations (SKIP_MIGRATIONS=true)"
|
|
echo "[entrypoint] Using existing database from ${PERSIST_PATH}"
|
|
return
|
|
fi
|
|
|
|
echo "[entrypoint] Applying D1 migrations (binding: ${D1_BINDING}, persist: ${PERSIST_PATH})"
|
|
npx wrangler d1 migrations apply "${D1_BINDING}" \
|
|
--local \
|
|
--persist-to "${PERSIST_PATH}"
|
|
}
|
|
|
|
maybe_seed_data() {
|
|
if [[ "${SEED_DATA,,}" != "true" ]]; then
|
|
echo "[entrypoint] Seed step disabled (set SEED_DATA=true to enable)"
|
|
return
|
|
fi
|
|
|
|
if [[ -f "${SEED_SENTINEL}" ]]; then
|
|
echo "[entrypoint] Seed data already applied (skipping)"
|
|
return
|
|
fi
|
|
|
|
echo "[entrypoint] Seeding local database from seed.sql"
|
|
if npx wrangler d1 execute "${D1_BINDING}" \
|
|
--local \
|
|
--persist-to "${PERSIST_PATH}" \
|
|
--file ./seed.sql; then
|
|
touch "${SEED_SENTINEL}"
|
|
else
|
|
echo "[entrypoint] Seed step failed but container will continue" >&2
|
|
fi
|
|
}
|
|
|
|
start_server() {
|
|
echo "[entrypoint] Starting Wrangler dev server on port ${PORT}"
|
|
exec npx wrangler pages dev dist \
|
|
--local \
|
|
--d1="${D1_BINDING}" \
|
|
--persist-to "${PERSIST_PATH}" \
|
|
--ip 0.0.0.0 \
|
|
--port "${PORT}"
|
|
}
|
|
|
|
apply_migrations
|
|
maybe_seed_data
|
|
start_server
|