使用sqalchemy创建db.Sequence

时间:2018-10-25 06:43:35

标签: python postgresql sqlalchemy psycopg2

我正在使用postgres 10.5,python 3,flask和sqlalchemy。我正在尝试使用以下命令在users表中创建一列

id = db.Column(db.Integer, db.Sequence('user_id_seq'), primary_key=True, autoincrement=True)

但是,当我运行此代码并创建用户时,出现错误: error creating user (psycopg2.ProgrammingError) relation "user_id_seq" does not exist

如何以编程方式创建序列'user_id_seq'?有什么方法可以检查它是否存在,如果不使用sqlalchemy,可以创建它

2 个答案:

答案 0 :(得分:0)

在这种情况下,您将需要创建一个代码来启动银行。例如:

def upgrade():
    op.execute("create sequence user_id_seq start with 1 increment by 1 nocache nocycle")

def downgrade():
    op.execute(sa.schema.DropSequence(sa.Sequence("user_id_seq")))

答案 1 :(得分:0)

有趣的是,这最终导致以前定义数据库表的方式出现问题。我放下表格,运行代码,序列正确存在。