【问题标题】:sqlalchemy db.create_all problem when i try to use the function in the python cli当我尝试在 python cli 中使用该函数时出现 sqlalchemy db.create_all 问题
【发布时间】:2020-03-28 15:09:02
【问题描述】:

好的,所以我有我的表,用 repr 类定义布置,当我尝试在 python 中使用 db.create_all() 时出现此错误

sqlalchemy.exc.NoReferencedTableError: Foreign key associated with column 'subuser_table.userid' could not find table 'usersTable' with which to generate a foreign key to target column 'userid'

我的代码如下所示:

db = SQLAlchemy(app)

class usersTable(db.Model):
    userid = db.Column(db.Integer, primary_key=True)
    fname = db.Column(db.String, nullable=False)
    lname = db.Column(db.String, nullable=False)
    email = db.Column(db.String, unique=True, nullable=False)
    username = db.Column(db.String, unique=True, nullable=False)
    password = db.Column(db.String, nullable=False)
    joined = db.Column(db.Date, nullable=False)
    package = db.Column(db.String, nullable=False)
    subuser = db.relationship('Subuser', backref='user', lazy=True)

    def __repr__(self):
        return f"users_table({self.fname}, {self.lname}, {self.email}, {self.username}, {self.password}, {self.joined}, {self.package})"

class subuserTable(db.Model):
    userid = db.Column(db.Integer, db.ForeignKey('users_table.userid'), nullable=False)
    subid = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String, unique=True, nullable=False)
    password = db.Column(db.String, nullable=False)
    fname = db.Column(db.String, nullable=False)
    lname = db.Column(db.String, nullable=False)
    admin = db.Column(db.Boolean, default=False)

    def __repr__(self):
        return f"subuser_table({self.fname}, {self.lname}, {self.email}, {self.username}, {self.password}, {self.joined}, {self.package})"

我的 URI 确实在另一个文件中,并且它确实链接到了数据库。由于约束错误,我无法创建这些表。如果有人有任何想法,请告诉我

【问题讨论】:

  • 错误和提供的代码似乎不匹配。您拥有db.ForeignKey('users_table.userid'),但错误表明您将拥有db.ForeignKey('usersTable.userid')
  • 我已经修复了,在另一个文件中遗留了一个工件

标签: python sqlite flask sqlalchemy flask-sqlalchemy


【解决方案1】:

在另一个文件中遗留了一个我没有更改名称的工件。该错误并没有真正帮助,请检查您的文件!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-04
    • 1970-01-01
    • 1970-01-01
    • 2011-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多