метод create_all для объекта базы данных, не создающий таблицы базы данных - PullRequest
0 голосов
/ 04 мая 2019

У меня есть очень простой проект Flask / SqlAlchemy с одним маршрутом, расположенным здесь.

https://github.com/thenetimp/flask_base_v2

В маршруте я создаю объект пользователя из модели User, но когда я вызываю маршрут, я получаю следующую ошибку

sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such 
table: user
[SQL: INSERT INTO user (email_address, password, first_name, last_name, created_on, updated_on) VALUES (?, ?, ?, ?, ?, ?)]
[parameters: ('jdoe@gmail.com', b'$2b$12$emg2oQcGeK0LEg5IFgie8eOEn2MJ/gKzyGWRPqOGJcQqlM1kCyskK', 'John', 'Doe', '2019-05-05 01:12:29.339788', '2019-05-05 01:12:29.339805')]
(Background on this error at: http://sqlalche.me/e/e3q8)

В фабрике приложений create_app() я вызываю функцию db.create_all(), чтобы обновить базу данных и создать таблицу, но это не так. Другие вопросы переполнения стека с аналогичными проблемами говорят, что используется неправильная ссылка на базу данных, но я не знаю, как это исправить, поэтому я использую правильную ссылку.

Я искал stackoverflow, но ответы на подобные вопросы не помогли моей структуре варианта использования / приложения (которую я хотел бы сохранить, если это возможно).

Если бы кто-то мог взглянуть, я был бы благодарен.

1 Ответ

0 голосов
/ 04 мая 2019

Я использовал пример из статьи, которая использовала это:

from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class User(Base):

чтобы объявить класс. Однако это не прикрепило модель к экземпляру базы данных. Изменение объявления класса для расширения db.Model устранило проблему.

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