Flask SQL Alchemy NoForeignKeysError

Viewed 34

I'm trying to inherit a few things from each table in the database, however I keep running into a sqlalchemy.exc.NoForeignKeysError error. I've tried replacing the relationships with columns and still no positive result. I've also tried to add foreign keys but the same error occurs.

What am I doing wrong?

time = datetime.now()
# convert time to string 


# create user model 
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name_user = db.Column(db.String(80), nullable=False)
    email_user = db.Column(db.String(120), nullable=False)
    password_user = db.Column(db.String(80), nullable=False)
    date_created = db.Column(db.DateTime, default=time)
    job_assigned = db.relationship('Job', backref='job.user_job', lazy=True)


    def __repr__(self):
        return '<Name %r>' % self.name_user


class Customer(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name_customer = db.Column(db.String(80), nullable=False)
    company = db.Column(db.String(80), nullable=False)
    email_customer = db.Column(db.String(120), nullable=False)
    password_customer = db.Column(db.String(80), nullable=False)
    address = db.Column(db.String(120), nullable=False)
    date_created = db.Column(db.DateTime, default=time)
    job_customer = db.relationship('Job', backref='job.customer_job', lazy=True)
    

    def __repr__(self):
        return '<Name %r>' % self.name_customer

class Job(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(80), nullable=False)
    description = db.Column(db.String(120), nullable=False)
    customer_job = db.relationship('Job', backref='job.title', lazy=True)
    user_job = db.relationship('Job', backref='job.title', lazy=True)
    date_started = db.Column(db.DateTime, default=time)
    date_completed = db.Column(db.DateTime, default=time)




    def __repr__(self):
        return '<Title %r>' % self.title

class Progress(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    job_progress = db.relationship('Job', backref='progress.job_progress', lazy=True)
    progress_report = db.Column(db.String(500), nullable=False)
    date_created = db.Column(db.DateTime, default=time)
    update_by = db.Column(db.String(120), nullable=False)

    def __repr__(self):
        return '<Progress %r>' % self.progress_report

class Task(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    # inherit user from User model
    user_id = db.relationship('User', backref='user.user_id', lazy=True)
    # inherit job from Job model
    job_id = db.relationship('Job', backref='task.job_id', lazy=True)
    job_task = db.relationship('Job', backref='task.job_task', lazy=True)
    task = db.Column(db.String(500), nullable=False)
    date_created = db.Column(db.DateTime, default=time)
    

    def __repr__(self):
        return '<Task %r>' % self.task

db.create_all()

sqlalchemy.exc.NoForeignKeysError: Could not determine join condition between parent/child tables on relationship User.job_assigned - there are no foreign keys linking these tables. Ensure that referencing columns are associated with a ForeignKey or ForeignKeyConstraint, or specify a 'primaryjoin' expression.

0 Answers
Related