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

时间:2016-03-25 09:44:36

标签: 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))

问题是当我在我的一个视图中Cache1.query.delete()然后我尝试在Cache1中添加新记录时,序列号不会从1开始。我应该总是去Postgres并且做ALTER SEQUENCE "Cache1_id_seq" RESTART WITH 1。 有人可以告诉我在Sqlalchemy这样做的方法。谢谢你的支持

1 个答案:

答案 0 :(得分:2)

对于运行自定义SQL查询,您可以使用session.execute方法。

engine = db_connect()
session = sessionmaker(bind=engine, autocommit=True)()
session.execute("ALTER SEQUENCE test_id_seq RESTART WITH 1;")
session.close()