1

我试图用 Alembic 为我的 SQLServer 数据库创建一个数据库迁移脚本,但连接字符串有问题。

这就是我现在所拥有的:

sqlalchemy.url = "mssql+pyodbc://db_server/database?trusted_connection=yes&driver=ODBC Driver 17 for SQL Server"

期间的错误消息alembic currentsqlalchemy.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

我能够使用 PyODBC 连接到数据库并执行原始 SQL。

任何拥有权利sqlalchemy.url的建议表示赞赏。

4

2 回答 2

1

我能够通过删除引号来解决问题。

这就是我alembic.ini现在拥有相应行的方式:

sqlalchemy.url = mssql+pyodbc://dbserver/database?trusted_connection=yes&driver=ODBC Driver 17 for SQL Server
于 2021-01-04T23:37:10.617 回答
0

URL 不能有空格。+用字符替换空格:

sqlalchemy.url = "mssql+pyodbc://db_server/database?trusted_connection=yes&driver=ODBC+Driver+17+for+SQL+Server"

您可以了解有关URL 编码的更多信息,空格不是 URL 中唯一必须转义的字符。

于 2021-01-04T23:09:31.737 回答