services: migrate: image: mongo:7.0 volumes: - ../generate/database/mongo:/migrations:ro working_dir: /app environment: - MONGO_HOST=${MONGO_HOST:-127.0.0.1:27017} - MONGO_DB=${MONGO_DB:-digimon} - MONGO_USER=${MONGO_USER:-root} - MONGO_PASSWORD=${MONGO_PASSWORD:-example} - MONGO_AUTH_DB=${MONGO_AUTH_DB:-admin} network_mode: host # 預設執行 up migration command: > sh -c " if [ -z \"$$MONGO_USER\" ] || [ \"$$MONGO_USER\" = \"\" ]; then MONGO_URI=\"mongodb://$$MONGO_HOST/$$MONGO_DB\" else MONGO_URI=\"mongodb://$$MONGO_USER:$$MONGO_PASSWORD@$$MONGO_HOST/$$MONGO_DB?authSource=$$MONGO_AUTH_DB\" fi && echo \"執行 MongoDB migration (UP)...\" && echo \"連接: $$MONGO_URI\" && for file in $$(ls -1 /migrations/*.up.txt 2>/dev/null | sort); do echo \"執行: $$(basename $$file)\" && mongosh \"$$MONGO_URI\" --file \"$$file\" || exit 1 done && echo \"✅ Migration UP 完成\" "