sqlalchemy '(sqlite3.操作错误)靠近"(":语法错误'



我们尝试使用 sqlalchemy 将大型表(大于本地内存空间(从 postgresql 数据库迁移到本地 sqlite3 数据库,但在尝试在 sqlite3 数据库中创建表时出现语法错误。通读其他帖子,建议的修复程序似乎不适用于此错误。我们这里是否缺少一些使用细节?

# reflect table from remote postgresql database
read_engine = create_engine('postgresql://dbusername:dbuserpassword@server/dbname')
meta = MetaData()
raw = Table('db_table', meta, autoload=True, autoload_with=read_engine)
# write table to local sqlite3 database
write_engine = create_engine('sqlite:///db_local.sqlite3')
table.create(write_engine)

这是我们得到的错误:

OperationalError: (sqlite3.OperationalError) near "(": syntax error
[SQL: 
CREATE TABLE db_table (
id INTEGER DEFAULT nextval('db_table_id_seq'::regclass) NOT NULL, 
created_at TIMESTAMP, 
updated_at TIMESTAMP, 
data TEXT, 
device_key TEXT, 
format TEXT, 
uuid TEXT, 
CONSTRAINT db_table_pkey PRIMARY KEY (id)
)
]

我认为问题是SQLite不支持DEFAULT nextval(...)-nextval()是一个特定于Postgres的函数,不是SQLite数据库的一部分。

我相信,您需要重写CREATE TABLE语句才能使用AUTOINCREMENT

披露:我是企业数据库(EDB(员工

最新更新