Я использую SQLAlcemy в приложении Flask, чтобы перенести старую базу данных MySQL на новую, выполняя некоторую очистку и такой маршрут. Я не контролирую схему на цели, и поэтому я связан с их расстраивающей схемой и способом объявления имен столбцов и отношений.SQLAlchemy два одинаково названных первичных ключа, которые также являются иностранными
Мои модели выглядят следующим образом:
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class EntryTitle(Base):
__tablename__ = 'entry_title'
entry_id = Column('entry_id', Integer, primary_key=True)
title = Column('title', String(155))
class EntryData(Base):
__tablename__ = 'entry_data'
entry_id = Column('entry_id', Integer, primary_key=True)
body = Column('body', String(255))
мне нужно связать второй к первому, присоединился на этой entry_id
колонке, и я не уверен, что лучший способ сделать это.
Мне очень жаль, что это моя вина не используя мой код дословно. Я фактически использую ORM с 'declarative_base'. Я скорректировал свой пример, но, я думаю, можно с уверенностью предположить, что комманда 'ForeignKey' /' primary_key' будет работать? – Wil
Да, вы правы в использовании 'ForeignKey'. Я также обновил свой ответ. –
и как я могу добавить новую запись EntryData? Я узнаю старый элемент entry_id, но его нельзя повторно использовать в новом, поскольку он автоматически увеличивается. Я надеялся, что это будет что-то вроде титул = ChannelTitle ({ 'Название': 'Мой титул'}) данных = ChannelData ({ 'тело': 'Мое тело, entry_id = title.entry_id}) db_session .add (заголовок) db_session.add (данные) db_session.commit() – Wil