sqlalchemyの外部キーについて
sqlalchemyを使ってデータ登録をするメソッドを書きましたが、
外部キーの設定周りでエラーが出てしまいます。
なお、Belongクラスのidを、Pageクラスで外部キーとして呼び出しています。
▼POSTができるようにしたい※GET:データ取得はできました
a.py※一部抜粋
class PageRepository(): def __init__(self,url): engine = create_engine(url) #Base = declarative_base() Session = sessionmaker(bind=engine) self.session = Session() #ページ登録 def post(self,title,belong_id): now_time = datetime.now() page = Page(id=null, title=title, belong_id=belong_id, created_at=now_time, updated_at=now_time) self.session.add(page) self.session.commit() page_repository = PageRepository(access_point) page_repository.post('flaskテスト',1)
→ python a.py
とすると、エラーが発生します。
エラー
sqlalchemy.exc.NoReferencedColumnError: Could not initialize target column for ForeignKey 'belong.id' on table 'page': table 'belong' has no column named 'id'
b.py※一部抜粋
engine = create_engine(access_point, echo=True) Base = declarative_base() class Belong(Base): __tablename__ = 'belong' id = Column('belong_id', Integer, primary_key=True) #pages = relationship('Page', backref="belong.id") pages = relationship('Page') Base.metadata.create_all(engine) class Page(Base): __tablename__ = 'page' id = Column('page_id', Integer, primary_key=True) title = Column('title', String(200)) belong_id = Column('belong_id', Integer, ForeignKey('belong.id', onupdate="CASCASE", ondelete="CASCASE")) created_at = Column(DateTime) updated_at = Column(DateTime) Base.metadata.create_all(engine)
色々と確認してみましたが分からず・・・
どの様に確認していけば良いかといった方法も教えていただけると嬉しいです。
よろしくお願いいたします。