0

我想问为什么我的 create_engine 错误?我的端口是正确的,我在本地尝试过,从这里没有任何错误。但是,当我将它部署在我的 GCP 上时,它出现了这样的错误。我在本地使用 GCP 的 SQLAlchemy 版本具有相同的版本。


Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
    worker.init_process()
  File "/usr/local/lib/python3.8/site-packages/uvicorn/workers.py", line 57, in init_process
    super(UvicornWorker, self).init_process()
  File "/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py", line 119, in init_process
    self.load_wsgi()
  File "/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py", line 144, in load_wsgi
    self.wsgi = self.app.wsgi()
  File "/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py", line 67, in wsgi
    self.callable = self.load()
  File "/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 49, in load
    return self.load_wsgiapp()
  File "/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp
    return util.import_app(self.app_uri)
  File "/usr/local/lib/python3.8/site-packages/gunicorn/util.py", line 358, in import_app
    mod = importlib.import_module(module)
  File "/usr/local/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 783, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/app/main.py", line 20, in <module>
    from db.session_car import SessionLocal as SessionLocalCar
  File "/app/db/session_car.py", line 5, in <module>
    engine = create_engine(settings.DATABASE_URL_CAR, pool_pre_ping=True)
  File "<string>", line 2, in create_engine
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/util/deprecations.py", line 298, in warned 

有没有人有同样的错误我?

编辑:找到解决方案,降级 SQLAlchemy 版本。sqlalchemy_utils当前与 SQLAlchemy > 1.4.0 不兼容

SQLAlchemy-utils 与 SQLAlchemy > 1.4.0 不兼容

4

2 回答 2

1

正如@RudyTriSaputra在评论部分所说,SQLAlchemy-utils 在更新到 1.4.0 或更高版本后无法在 SQLAlchemy 上运行。因此,解决方案是降级其版本。

于 2021-04-19T09:05:15.830 回答
0

我也有这个错误:

File "<string>", line 2, in create_engine: File "/layers/google.python.pip/pip/lib/python3.9/site-packages/sqlalchemy/util/deprecations.py", line 309, in warned

不需要降级 sqlalchemy,您可以使用最新版本,也许这已经消除了错误。我无法再次对此进行测试,中间步骤太多。

可能是什么:

  • 如上所述,添加SQLAlchemy>=1.4.2到“requirements.txt”。
  • 还要在requirements.txt中添加“mysqlclient==2.1.0”包,并在“main.py”中添加驱动关键字“+mysqldb”,见链接。还有其他可能的驱动程序,但据说这个mysqlclient是最快的。
  • 我还需要一个 VPC 连接器来连接我的本地非 Google-Cloud mysql 服务器,请参阅如何在 Python 运行时使用 SQLAlchemy 从 Google Cloud Function 访问非 Google MySQL 服务器数据库(无 Cloud SQL!)。也许这就是这里的问题。这将适合您编写的内容,您可以在本地访问它,但不能从 GCF 访问它。您只能找到 Cloud SQL 数据库,而对于其他人,您需要一个 VPC 连接器,费用很小,没什么大不了的。
于 2022-01-22T22:59:39.820 回答