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.