oracle建表时的主键与序列,将SQLAlchemy与Oracle和Flask一起使用,为主键创建序列

当我在Oracle中使用SQLAlchemy时,我还必须为主键添加序列,但是迁移并不是单独创建序列的。我怎样才能得到要创建的序列?在

我已经尝试过多次调整代码来让SQLAlchemy为主键创建oracle序列,但是到目前为止,我还不能获得SQLAlchemy创建的oracle序列。到目前为止,我有一个非常简单的用户/角色设置,表存在,但没有序列。它运行时不会显示错误。在

模型类如下所示:class Role(SurrogatePK, Model):

"""A role for a user."""

__tablename__ = 'roles'

id = db.Column(db.Integer, db.Sequence(__tablename__ + '_id_seq'), primary_key=True)

name = Column(db.String(80), unique=True, nullable=False)

user_id = reference_col('users', nullable=True)

user = relationship('User', backref='roles')

def __init__(self, name, **kwargs):

"""Create instance."""

db.Model.__init__(self, name=name, **kwargs)

我用的是烧瓶,炼金术,然后我就跑了

^{pr2}$

我没有看到错误,一切看起来都很好。然而,在我奔跑之后$ python manage.py db upgrade

INFO [alembic.runtime.migration] Context impl OracleImpl.

INFO [alembic.runtime.migration] Will assume non-transactional DDL.

INFO [alembic.runtime.migration] Running upgrade -> 61ca5eb70d06, empty message

第一次尝试创建记录时,它失败并显示:

sqlalchemy.exc.DatabaseError

数据库错误:(cx_Oracle.Database错误)ORA-02289:序列不存在

如果我手动创建序列,效果很好。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值