尝试使用 sqlalchemy-spanner 创建示例表会出现错误

问题描述 投票:0回答:1

我正在使用: SQLAlchemy==1.3.0 sqlalchemy-spanner==1.6.2 尝试 https://github.com/googleapis/python-spanner-sqlalchemy/tree/main“创建表”中的示例给我: google.api_core.exceptions.InvalidArgument:400 [错误]“PRIMARY”处或附近的语法错误;解析 DDL 语句失败。

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String
PROJECT = "prj***"
INSTANCE = "***"
DATABASE = "**"
URL = f"spanner+spanner:///projects/{PROJECT}/instances/{INSTANCE}/databases/{DATABASE}"
engine = create_engine(URL)

metadata = MetaData(bind=engine)

table = Table(
  "users",
  metadata,
  Column("user_id", String(16), primary_key=True),
  Column("user_name", String(16), nullable=False),
)
table.create()

我尝试了几个不同的列,使用类,然后使用 Base.metadata.create_all()。有时它会说“user”列也不存在,所以我认为它翻译了 DDL 语句错误。非常感谢!

python google-cloud-platform sqlalchemy google-cloud-spanner
1个回答
0
投票

您使用的 URL 似乎是 1.4 版本 根据提供的文档,1.3 和 1.4 的 URL 采用以下格式:

# for SQLAlchemy 1.3:
spanner:///projects/project-id/instances/instance-id/databases/database-id

# for SQLAlchemy 1.4:
spanner+spanner:///projects/project-id/instances/instance-id/databases/database-id

© www.soinside.com 2019 - 2024. All rights reserved.