feat(api): enhance database migration locking mechanism and configuration

- Introduced a configurable Redis lock TTL for database migrations in DeploymentConfig.
- Updated the upgrade_db command to handle lock release errors gracefully.
- Added documentation for the new MIGRATION_LOCK_TTL environment variable in the .env.example file and docker-compose.yaml.

(cherry picked from commit 4a05fb120622908bc109a3715686706aab3d3b59)
This commit is contained in:
L1nSn0w
2026-02-13 12:15:55 +08:00
parent 1977e68b2d
commit 9acdfbde2f
5 changed files with 104 additions and 3 deletions

View File

@ -125,6 +125,10 @@ OPENAI_API_BASE=https://api.openai.com/v1
# and the application will start after the migrations have completed.
MIGRATION_ENABLED=true
# Redis lock TTL (in seconds) for startup database migrations.
# Increase this value for long-running migrations to avoid concurrent upgrades in multi-replica deployments.
MIGRATION_LOCK_TTL=3600
# File Access Time specifies a time interval in seconds for the file to be accessed.
# The default value is 300 seconds.
FILES_ACCESS_TIMEOUT=300

View File

@ -32,6 +32,7 @@ x-shared-env: &shared-api-worker-env
CHECK_UPDATE_URL: ${CHECK_UPDATE_URL:-https://updates.dify.ai}
OPENAI_API_BASE: ${OPENAI_API_BASE:-https://api.openai.com/v1}
MIGRATION_ENABLED: ${MIGRATION_ENABLED:-true}
MIGRATION_LOCK_TTL: ${MIGRATION_LOCK_TTL:-3600}
FILES_ACCESS_TIMEOUT: ${FILES_ACCESS_TIMEOUT:-300}
ACCESS_TOKEN_EXPIRE_MINUTES: ${ACCESS_TOKEN_EXPIRE_MINUTES:-60}
REFRESH_TOKEN_EXPIRE_DAYS: ${REFRESH_TOKEN_EXPIRE_DAYS:-30}