Python SQLAlchemy Alembic:SQLServer的URL存在问题
我试图用Alembic为我的SQLServer数据库创建数据库迁移脚本,但连接字符串出现问题 这就是我现在拥有的:Python SQLAlchemy Alembic:SQLServer的URL存在问题,python,sqlalchemy,alembic,flask-migrate,sqlalchemy-migrate,Python,Sqlalchemy,Alembic,Flask Migrate,Sqlalchemy Migrate,我试图用Alembic为我的SQLServer数据库创建数据库迁移脚本,但连接字符串出现问题 这就是我现在拥有的: sqlalchemy.url=“mssql+pyodbc://db_server/database?trusted_connection=yes&driver=ODBC SQL Server的驱动程序17“ alembic当前期间出现错误消息: sqlalchemy.exc.ArgumentError:无法从字符串“mssql”解析rfc1738 URL+pyodbc://dbs
sqlalchemy.url=“mssql+pyodbc://db_server/database?trusted_connection=yes&driver=ODBC SQL Server的驱动程序17“
alembic当前期间出现错误消息:
sqlalchemy.exc.ArgumentError:无法从字符串“mssql”解析rfc1738 URL+pyodbc://dbserverxx/dbxx?trusted_connection=yes&driver=ODBC SQL Server“”的驱动程序17
我用SQLite测试了我的脚本,效果很好
我使用的是Mac,odbcinst.ini
的内容如下:
[ODBC Driver 17 for SQL Server]
Description=Microsoft ODBC Driver 17 for SQL Server
Driver=/usr/local/lib/libmsodbcsql.17.dylib
UsageCount=2
我能够使用PyODBC连接到数据库并执行原始sql
任何关于拥有正确的
sqlalchemy.url
的建议都将不胜感激。url不能有空格。将空格替换为+
字符:
sqlalchemy.url = "mssql+pyodbc://db_server/database?trusted_connection=yes&driver=ODBC+Driver+17+for+SQL+Server"
您可以了解更多信息,空格不是URL中必须转义的唯一字符。我可以通过删除引号来解决这个问题 这就是我的
alembic.ini
现在具有相应行的方式:
sqlalchemy.url=mssql+pyodbc://dbserver/database?trusted_connection=yes&driver=ODBC SQL Server的驱动程序17
我试过了,但没有成功。但是,我可以通过删除“
(引号)来解决这个问题。是的,应该对SQLAlchemy连接URI进行编码,但实际上并没有问题(如另一个答案所示)。恐怕必须转义的字符只有:
、@
、//code>和?
(也可能是+
本身,但不确定这一点)。