删除表、SQLAlchemy、Postresql 后初始化序列

Rzo*_*ozi 7 python postgresql sqlalchemy

我在 Flask API 中使用带有 sqlalchemy 的 Postgres 数据库,我的数据库模型定义如下:

 class Cache1(db.Model):
  __tablename__ = 'Cache1'
  id = db.Column(db.Integer, Sequence('Cache1_id_seq', start=1, increment=1), primary_key=True)
  name = db.Column(db.String(20))
Run Code Online (Sandbox Code Playgroud)

问题是当我Cache1.query.delete()在我的一个视图中执行然后我尝试放入新记录时Cache1,序列号不是从 1 开始的。我应该总是去 Postgres 并执行ALTER SEQUENCE "Cache1_id_seq" RESTART WITH 1。有人可以告诉我一种在 Sqlalchemy 中执行此操作的方法。提前谢谢你

Dan*_*kin 8

使用该ALTER SEQUENCE命令修改 PostgreSQL 序列。没有内置的 SQLAlchemy 函数,用于session.execute执行 SQL。

db.session.execute("ALTER SEQUENCE Cache1_id_seq RESTART WITH 1")
db.session.commit()
Run Code Online (Sandbox Code Playgroud)