сброс базы данных колбы мигрировать - PullRequest
0 голосов
/ 25 ноября 2018

Я создал базу данных для приложения Flask,

class Post(db.Model, SearchableMixin):
    __searchable__ = ['body']
    id = db.Column(db.Integer, primary_key=True)
    body = db.Column(db.String(140))
    timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    language = db.Column(db.String(5))
    # for the comment foreign key
    comment = db.relationship('Comment', foreign_keys = 'Comment.post_id', 
        backref = 'post', lazy = 'dynamic')
    photo = db.relationship('Photo', foreign_keys = 'Photo.post_idn', 
        backref = 'post', lazy = 'dynamic')

    def __repr__(self):
        return "<Post {}>".format(self.body)

class Photo(db.Model):
        id = db.Column(db.Integer, primary_key = True)
        user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
        photo_url = db.Column(db.String(200))
        upload_time = db.Column(db.DateTime, index=True, default=datetime.utcnow)
        new_field = db.Column(db.String(100))
        post_id = db.Column(db.Integer, db.ForeignKey('post.id'))

        def __repr__(self):
            return '<Photo {}>'.format(self.photo_url)

при запуске переноса и обновления flask db говорится, что

[2018-11-25 21: 07: 03,439] ИНФОРМАЦИЯ в init : запуск микроблога ИНФОРМАЦИЯ [alembic.runtime.migration] Контекст impl SQLiteImpl.INFO [alembic.runtime.migration] Принимает нетранзакционный DDL.

Однако, когда я пытаюсь запустить Photo.query.all () в оболочке фляги, он выдает следующие ошибки: «Неттакой столбец: post_id '

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

И я готов удалить всю базу данных и заново все перенести.Может кто-нибудь посоветовать мне, как это сделать.Спасибо.

1 Ответ

0 голосов
/ 25 ноября 2018

Вы создали post_id в качестве внешнего ключа.Поэтому вы должны создать модель Post для таблицы post db со столбцом с именем id.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...