CI / test (push) Has been cancelled
Beim Cold-Start eines Containers mit persistentem Volume (DB ist nicht leer) liefen die gunicorn-Worker parallel in init_db() und beide versuchten CREATE TABLE. Einer crashed mit 'table genres already exists', der andere startete. Symmetrisch zum seed-Lock: init_db() jetzt auch in FileLock gewrapped. Zusaetzlich *.init.lock in .gitignore. Verifiziert mit 2 Workern + bestehender DB: beide Container starten sauber, kein Crash, 8 items erhalten.
51 lines
743 B
Plaintext
51 lines
743 B
Plaintext
# Python
|
|
__pycache__/
|
|
*.py[cod]
|
|
*$py.class
|
|
*.so
|
|
.Python
|
|
venv/
|
|
.venv/
|
|
env/
|
|
.pytest_cache/
|
|
.mypy_cache/
|
|
.ruff_cache/
|
|
|
|
# IDE
|
|
.vscode/
|
|
.idea/
|
|
*.swp
|
|
*.swo
|
|
.DS_Store
|
|
|
|
# App data (lokal generiert)
|
|
data/*.db
|
|
data/*.db-journal
|
|
data/*.db-wal
|
|
data/*.db-shm
|
|
data/backups/
|
|
data/exports/
|
|
|
|
# Logs
|
|
*.log
|
|
logs/
|
|
|
|
# Secrets / Env
|
|
.env
|
|
.env.local
|
|
*.pem
|
|
|
|
# Tooling (lokal)
|
|
.mcp.json
|
|
|
|
# File-Lock-Artefakte (Race-Condition-Schutz)
|
|
*.seed.lock
|
|
*.init.lock
|
|
|
|
# dist/ ist ein lokales Build-Ausgabeverzeichnis. Docker-Images werden
|
|
# in die Gitea Container Registry gepusht (bin/build-and-push.sh), nicht
|
|
# als Tar hier abgelegt. dist/README.md wird trotzdem committed, damit
|
|
# der Ordner im Repo auftaucht und die Policy dokumentiert ist.
|
|
dist/*.tar
|
|
dist/manifest.json
|