Что не так с моими отношениями «один ко многим» в SQLAlchemy? - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть 2 модели, которые имеют отношения 1 ко многим друг с другом. Существует один Debate для многих Arguments.

Моя дискуссия определяется как:

class Debate(BaseModel):
    __tablename__ = "debates"

    title = db.Column(
        db.String(1000),
        nullable=False
        )
    description = db.Column(
        db.String(10000),
        nullable=True
    )
    creator_id = db.Column(
        db.Integer,
        db.ForeignKey("users.id"),
        nullable=False
        )
    community_id = db.Column(
        db.Integer,
        db.ForeignKey("communities.id"),
        nullable=False
        )
    arguments = db.relationship(
        "Argument",
        backref="debates"
    )

    def __repr__(self):
        return "<Debate: {0}>".format(self.title)

Мой аргумент определяется как:

class Argument(BaseModel):
    __tablename__ = "arguments"

    title = db.Column(
        db.String(1000),
        nullable=False
        )
    content = db.Column(
        db.String(1000000),
        nullable=False
        )
    user_id = db.Column(
        db.Integer,
        db.ForeignKey('users.id'),
        nullable=False
        )
    debate_id = db.Column(
        db.Integer,
        db.ForeignKey('debates.id'),
        nullable=False
        )

    def __repr__(self):
        return "<Argument: {0}>".format(self.title)

Я понимаюне получите никакой реальной ошибки. Когда я пытаюсь перенести мое приложение с помощью flask-migrate, оно говорит No changes in schema detected, даже когда я изменил отношение (я не знаю, нормально ли это). Я удалил мой каталог миграций и повторил попытку с тем же результатом. Когда я выбираю свой Дебат из БД, он просто возвращается без значений Аргументов.

Я пробовал все виды различных конфигураций и настроек, и я читал документацию, и я просто не могупосмотрим, что не так с этой настройкой. Я уверен, что это что-то маленькое, что я скучаю. Не могли бы вы сообщить мне, что не так с моим определением?

...