问题描述
我尝试使用 Alembic 为我的 sqlServer 数据库创建数据库迁移脚本,但连接字符串出现问题。
这就是我现在所拥有的:
sqlalchemy.url = "mssql+pyodbc://db_server/database?trusted_connection=yes&driver=ODBC Driver 17 for sql Server"
alembic current
期间的错误消息:
sqlalchemy.exc.ArgumentError: Could not parse rfc1738 URL from string '"mssql+pyodbc://dbserverxx/dbxx?trusted_connection=yes&driver=ODBC Driver 17 for sql Server"'
我使用 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
感谢您提供正确的 sqlalchemy.url
建议。
解决方法
我能够通过删除引号来解决问题。
这就是我的 alembic.ini
现在具有相应行的方式:
sqlalchemy.url = mssql+pyodbc://dbserver/database?trusted_connection=yes&driver=ODBC Driver 17 for SQL Server
,
网址不能有空格。用 +
字符替换空格:
sqlalchemy.url = "mssql+pyodbc://db_server/database?trusted_connection=yes&driver=ODBC+Driver+17+for+SQL+Server"
您可以了解有关 URL encoding 的更多信息,空格并不是网址中唯一需要转义的字符。