Flask-SQLAlchemy类/表多对多关系-找不到表

时间:2018-11-22 09:46:35

标签: python flask sqlalchemy many-to-many flask-sqlalchemy

需要帮助... 我有点认为将关系型“帮助器”表定义为类是不好的风格,但想使用它来存储属于该类的信息并方便地访问它 我究竟做错了什么?当我将其设置为表格时,我不会遇到任何问题...

谢谢!

from alexa import db


# Relation tables


class Todos(db.Model):
    _tablename_ = 'todos'
    id = db.Column(db.Integer, primary_key=True)
    order_id = db.Column(db.Integer,
                         db.ForeignKey("order.id"))
    sequence = db.Column(db.Integer)
    step_id = db.Column(db.Integer,
                        db.ForeignKey("step.id"))

    orders = db.relationship("Order",
                             backref=db.backref("todos",
                                                cascade="all, delete-orphan"))
    steps = db.relationship("Step",
                            backref=db.backref("todos",
                                               cascade="all, delete-orphan"))

# Actual tables


class Vehicle(db.Model):
    id = db.Column(db.String(20), primary_key=True)
    customer_number = db.Column(db.Integer, unique=True, nullable=False)
    orders = db.relationship("Order", backref="order_vehicle")


class Order(db.Model):
    _tablename_ = 'order'
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(200), unique=False, nullable=False)
    status_id = db.Column(db.Integer, db.ForeignKey("status.id"))
    vehicle_id = db.Column(db.Integer, db.ForeignKey("vehicle.id"))


class Step(db.Model):
    _tablename_ = 'step'
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(200), unique=False, nullable=False)
    description = db.Column(db.String(200), unique=False, nullable=False)
    status_id = db.Column(db.Integer, db.ForeignKey("status.id"))

    comment_id = db.Column(db.Integer, db.ForeignKey("comment.id"))


class Status(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(200), unique=False, nullable=False)
    steps = db.relationship("Step", backref="step")
    orders = db.relationship("Order", backref="order_status")


class Comment(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    text = db.Column(db.String(2000), unique=False, nullable=False)
    step = db.relationship("Step", backref="step_comment")

我的错误:

  File "C:\Anaconda3\lib\site-packages\sqlalchemy\engine\default.py", line 507, in do_execute
    cursor.execute(statement, parameters)
sqlite3.OperationalError: no such table: order

...

    context)
  File "C:\Anaconda3\lib\site-packages\sqlalchemy\engine\default.py", line 507, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such table: order [SQL: 'SELECT "order".id AS order_id, "order".title AS order_title, "order".status_id AS order_status_id, "order".vehicle_id AS order_vehicle_id \nFROM "order" \nWHERE "order".id = ?\n LIMIT ? OFFSET ?'] [parameters: ('1', 1, 0)] (Background on this error at: http://sqlalche.me/e/e3q8)

0 个答案:

没有答案