Versions
Mac OSX 10.13.6 (17G65)
AWS RDS MSSQL Instance
Select @@VERSION;
Microsoft SQL Server 2017
python3 -V
Python 3.7.0
pip3 show Flask-SQLAlchemy
Name: Flask-SQLAlchemy V: 2.3.2
pip3 show Flask-Migrate
Name: Flask-Migrate V: 2.2.1
config.py
class Config(object):
"""Docstring for Config Class."""
SECRET_KEY = os.environ.get('SECRET_KEY') or 'you-will-never-guess'
SQLALCHEMY_DATABASE_URI = (os.environ.get('DATABASE_URL'))
.env
SECRET_KEY=SuperDuperSecretPassKey
DATABASE_URL='mssql+pyodbc://DRIVER={ODBC Driver 17 for SQL Server};SERVER=My-custom-route.a0aaa0000aaaa.us-east-1.rds.amazonaws.com;DATABASE=Databasetoconnectto;UID=JayRizzo;PWD=SuperAwesomePassword!!!'
Problem:
How do I properly set the SQLAlchemy URL in my config?
- Encoded or decoded URL?
- Can I use a URL String?
- Does it have to be a DSN?
Note:
I can connect using a template and a python file directly like Connect to MSSQL Database using Flask-SQLAlchemy and even using pyodbc
that I created.
But when I use the env variable, I have gotten errors ranging from:
- Values Must be Strings config
- Could not parse rfc1738 URL from string '%s'" % name
- sqlalchemy.exc.DBAPIError: (pyodbc.Error) ('IM012', '[IM012] [unixODBC][Driver Manager]DRIVER keyword syntax error (0) (SQLDriverConnect)') (Background on this error at: http://sqlalche.me/e/dbapi)
- sqlalchemy.exc.InterfaceError: (pyodbc.InterfaceError) ('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found and no default driver specified (0) (SQLDriverConnect)') (Background on this error at: http://sqlalche.me/e/rvf5)
I am Stumped...