switch to debian in docker

This commit is contained in:
Mateusz Gruszczyński
2026-03-20 09:40:56 +01:00
parent 419c6fd0b5
commit 51da117ab4
6 changed files with 82 additions and 7 deletions

View File

@@ -1,11 +1,12 @@
from dotenv import load_dotenv
import time
from pathlib import Path
from dotenv import load_dotenv
from flask import Flask, render_template, request, url_for
from flask_login import current_user
from werkzeug.middleware.proxy_fix import ProxyFix
from dotenv import load_dotenv
from sqlalchemy import inspect, text
from sqlalchemy.exc import SQLAlchemyError
from sqlalchemy.exc import OperationalError, SQLAlchemyError
from werkzeug.middleware.proxy_fix import ProxyFix
from config import Config
from redis.exceptions import RedisError
from app.cli import register_cli
@@ -30,7 +31,25 @@ def _ensure_column(table_name: str, column_name: str, ddl: str):
db.session.commit()
def _wait_for_database(app, attempts: int = 30, delay: float = 1.0) -> bool:
for attempt in range(1, attempts + 1):
try:
with db.engine.connect() as conn:
conn.execute(text('SELECT 1'))
if attempt > 1:
app.logger.info('Database became available after %s attempt(s).', attempt)
return True
except OperationalError:
app.logger.warning('Database not ready yet (%s/%s). Waiting...', attempt, attempts)
time.sleep(delay)
return False
def _bootstrap_database(app):
if not _wait_for_database(app):
app.logger.error('Database is still unavailable after waiting. Skipping bootstrap.')
return
try:
db.create_all()
patches = [