Python Flask таблица обновлений - PullRequest
0 голосов
/ 26 апреля 2020

Это моя первая модель:

class Userauth(db.Model):
    __tablename__ = 'userauth'    

    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(50), unique = True, nullable = False)
    password = db.Column(db.String(50), nullable = False)

После того, как я сделал свою таблицу в своей базе данных, я пытаюсь зарегистрироваться или создать нового пользователя, но у меня появилась эта ошибка:

"Something went wrong: (psycopg2.errors.StringDataRightTruncation) value too long for type character varying(50)"

Я понимаю, что кодирую пароль, чтобы он превышал 50 символов, поэтому я изменяю свой код с

password = db.Column(db.String(50), nullable = False)

на

password = db.Column(db.String(150), nullable = False)

Но я все еще получаю ту же ошибку , Когда я проверял свою базу данных, моя таблица не меняла значение char с 50 на 150. Я перенес и обновил свою базу данных с python manage.py db migrate и upgrade, и в этом нет ошибки, но почему моя таблица не изменила изменение? Есть ли простой способ изменить или обновить нашу таблицу в Flask? (Я тоже работаю с flask -sqlalchemy), спасибо.

1 Ответ

1 голос
/ 26 апреля 2020

Что делать, если вы попытаетесь запустить команду SQL напрямую. Команда будет для postgresql что-то вроде:

ALTER TABLE Userauth ALTER COLUMN password TYPE varchar(150);

Вы можете выполнить SQL запросов с помощью Flask -SqlAlchemy db.session.execute -method. Дополнительная информация об этом: Как выполнить raw SQL в Flask -SQLAlchemy app

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

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