[英]Problems setting up Alembic with Google Cloud Spanner
我正在嘗試將 Alembic 設置為與 Google Cloud Spanner 一起使用,但無論我嘗試什么,在嘗試運行簡單的“ alembic upgrade head
”時都會出現以下錯誤之一:
到目前為止我已經嘗試過:
在 sqlalchemy.url 的 alembic.ini 中:
spanner:///projects/<project>/instances/<instance>/databases/<db>
spanner+spanner:///projects/<project>/instances/<instance>/databases/<db>
在 env.py 中:
config.set_main_option("sqlalchemy.url", "spanner:///projects/<project>/instances/<instance>/databases/<db>")
config.set_main_option("sqlalchemy.url",
"spanner+spanner:///projects/<project>/instances/<instance>/databases/<db>")
我嘗試過使用最新版本的 SqlAlchemy/Alembic/SqlAlchemy-Spanner,以及早期版本(sqlalchemy 1.3 和其他匹配版本)
我嘗試使用 PyPi 和 GitHub 的 sqlalchemy-spanner (git+https://github.com/googleapis/python-spanner-sqlalchemy.git@v1.2.0#egg=sqlalchemy-spanner)
到目前為止沒有執行任何代碼,只是試圖讓 Alembic 能夠連接到實例。 我擁有所有必需的權限(項目所有者)。
據我所知,SqlAlchemy 的扳手方言似乎沒有正確安裝。 我試圖從頭開始一個新項目,以消除舊的安裝干擾我的設置,但沒有運氣。
我什至嘗試通過 env.py 手動注冊方言:
registry.register("spanner.spanner", "google.cloud.sqlalchemy_spanner", "SpannerDialect")
我絕不是 Python 專家(與 Python 合作了一年,在做.Net/c# 10 年后現在),但我在這里沒有想法了。 任何幫助將不勝感激。
我想這個問題可以通過與 Google Cloud Spanner 團隊的交談來解決。 如果沒有,總結一下,這里是解釋。
sqlalchemy_spanner
現在支持 SQLAlchemy 1.3 和 1.4 版本,它們使用不同的 styles 的連接 URL。 它在docs中有描述。
如果sqlalchemy_spanner
是由pip install sqlalchemy_spanner
的,則應該正確注冊方言。 如果 package 是從 GitHub 存儲庫安裝的,則應手動運行 package setup.py
文件以注冊方言。
在使用 Alembic 時,連接 URL 和方言名稱仍然必須遵循自己的 SQLAlchemy 版本的樣式。 這意味着在env.py
(參見 repo 中的示例)和alembic.ini
中:
[alembic]
sqlalchemy.url = spanner+spanner:///projects/{project}...
因此,如果出現類似錯誤,首先要檢查三個位置:連接 URL 和 Alembic 文件env.py
和alembic.ini
- 所有這些都必須使用相同的方言 id 才能使其正常工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.