a year ago
I am facing an issue when deploying my Flask application on Railway. The app fails to start, and I receive the following error:
ModuleNotFoundError: No module named 'MySQLdb'
[2025-02-04 16:27:43 +0000] [6] [INFO] Worker exiting (pid: 6)
[2025-02-04 16:27:43 +0000] [1] [ERROR] Worker (pid:4) exited with code 3
[2025-02-04 16:27:43 +0000] [1] [ERROR] Worker (pid:5) was sent SIGTERM!
[2025-02-04 16:27:43 +0000] [1] [ERROR] Worker (pid:6) was sent SIGTERM!
[2025-02-04 16:27:43 +0000] [1] [ERROR] Worker (pid:7) was sent SIGTERM!
[2025-02-04 16:27:43 +0000] [1] [ERROR] Shutting down: Master
[2025-02-04 16:27:43 +0000] [1] [ERROR] Reason: Worker failed to boot.The full stack trace shows that SQLAlchemy is trying to use the MySQLdb driver, despite having PyMySQL installed and specified in my requirements.txt.
Environment Setup
Tech stack:
Flask (version: 2.3.3)
Flask-SQLAlchemy (version: 3.1.1)
Gunicorn (version: 23.0.0)
PyMySQL (version: 1.1.0)
SQLAlchemy (version: 2.0.37)
Project structure:
├── backend
│ └── app.py (Flask app definition)
├── main.py (entry point, imports app from backend.app)
├── requirements.txt
└── nixpacks.tomlCurrent
DATABASE_URL: The environment variableDATABASE_URLis set in Railway's settings but does not specify thepymysqldriver.
Steps Taken to Fix
Updated `DATABASE_URL
Verified that
PyMySQLis installed viarequirements.txt.Updated the Gunicorn command in the custom start command:
gunicorn backend.app:app --workers 4 --bind 0.0.0.0:$PORTTested locally, and the app works without issues.
Could you confirm whether Railway supports mysql+pymysql?
Is there anything else I need to configure in the deployment process to resolve this issue?
Any suggestions for further debugging?
ⓘ Deployment information is only viewable by project members and Railway employees.
2 Replies
a year ago
Hello,
You have PyMySQL in your requirements.txt file, but you aren't using it anywhere in your code, instead you are using SQLAlchemy
Please make sure you are using only PyMySQL in your code.
Status changed to Solved brody • about 1 year ago
