In user_models.py
, I have this:
class Users(Base):
__tablename__ = 'account_users'
id = Column(Integer, primary_key = True)
username = Column(String(255), nullable=False)
Base.metadata.create_all(engine)
When I run this, I create a user table.
On my other file, groups_models.py
, I have this:
class Groups(Base):
__tablename__ = 'personas_groups'
id = Column(Integer, primary_key = True)
user_id = Column(Integer, ForeignKey('account_users.id')) #This creates an error!!!
user = relationship('Users') #this probably won't work. But haven't hit this line yet.
Base.metadata.create_all(engine)
So, as you can see, I want to put a many-to-one relationship from groups -> users.
But when I run groups_models.py
...I get this error:
sqlalchemy.exc.NoReferencedTableError: Foreign key associated with column 'personas_groups.user_id' could not find table 'account_users' with which to generate a foreign key to target column 'id'
If I put the two tables together in one file, I'm sure it could work...but because I split it into 2 files (which I absolutely have to)...I don't know how to make ForeignKey relationships work anymore?
The key is to use the same Base for both foreign keys, instead of creating a new one for each table.
basetest.py
user_models.py
groups_models.py
Make sure that you have same
Base
to create all related tables.