sqlachemy создал таблицу mysql, но я изменил таблицу и теперь говорит «неизвестный столбец url» - PullRequest
0 голосов
/ 31 июля 2010

Я добавил столбец URL в свою таблицу, и теперь sqlalchemy говорит: «Неизвестный столбец URL».

Почему он не обновляет таблицу?

Должен быть параметр, когдаЯ создаю сеанс?

Я делаю:

Session = sessionmaker(bind=engine)

Есть ли что-то, чего мне не хватает?

Я хочу обновить таблицу, в которой нетсвойство, которое я добавил в структуру таблицы в своем коде Python.

Ответы [ 2 ]

1 голос
/ 31 июля 2010

В случаях, когда вы просто добавляете новые столбцы, вы можете безопасно использовать metadata.create_all(bind=engine) для обновления вашей схемы из определений вашего класса.

Однако это НЕ приведет к изменению существующих столбцов или удалению столбцов из схемы БД, если вы удалитеих в определении SQLA.

1 голос
/ 31 июля 2010

Я не уверен, что SQLAlchemy так хорошо поддерживает миграцию схемы (по крайней мере, в последний раз, когда я ее трогал, ее там не было).

Пара вариантов.

  1. Не указывайте таблицы вручную.Используйте функцию autoload, чтобы SQLAlchemy автоматически считывал столбцы из вашей базы данных.Это потребует тестов, чтобы убедиться, что это работает, но вы в целом понимаете. DRY .
  2. Попробуйте SQLAlchemy migrate .
  3. Обновите таблицу вручную после изменения спецификации модели.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...