我正在使用 kubernetes 将 FastAPI 和 SQLAlchemy 应用程序连接到 postgres 部署。
我指定我的连接字符串和架构如下:
DB_URL = f"postgresql+psycopg2://{POSTGRES_USER}:{POSTGRES_PASSWORD}@{DB}:5432/{DB_NAME}"
engine = create_engine(DB_URL, connect_args={"options":"csearch_path={}".format("schema_name")},)
但是,在应用程序启动时,我收到以下错误:
INFO: Waiting for application startup. │
│ ERROR: Traceback (most recent call last): │
│ File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context │
│ self.dialect.do_execute( │
│ File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 924, in do_execute │
│ cursor.execute(statement, parameters) │
│ psycopg2.errors.InvalidSchemaName: no schema has been selected to create in │
│ LINE 2: CREATE TABLE field (
我不明白为什么在指定架构时会看到此错误。
我认为您可能错过了 csearch_path 前面的
-
。 像这样的东西:
{"options":"-csearch_path={}".format("schema_name")}
代替:
{"options":"csearch_path={}".format("schema_name")}
您还可以通过元数据或每个表指定默认架构,这可能更方便。