@Eig
Инженер

Поддержка миграций или нереляционная БД?

Написано приложение на основе PyQt5 и SQLite. Суть приложения: простенькая база данных с графическим интерфейсом. Позволяет добавлять, изменять, удалять записи в рамках конкретной, заранее определенной, неизменяемой модели. Суть моего желания в следующем: хочу изменять модель, добавлять поля в таблицы. Ясно, что для этого нужна поддержка миграций. Сначала подумал о том, чтобы использовать ORM SQLAlchemy вместо встроенной в PyQt ORM.
Благо, привязка PyQt к SQLAlchemy существует, а также существует такая вот утилита для миграций в SQLAlchemy, судя по отзывам неплохая.
Что меня останавливает: хваленая сложность SQLAlchemy. Не уверен, что для приложения в 2500 строк рационально изучать этого монстра.
Сегодня ночью случайно наткнулся на такую штуку как mongoDB. Судя по всему нереляционная база данных может мне помочь, тем более данные можно перенести.
Итак, вопрос: судя по вашему опыту, какой из подходов будет рациональнее? Поменять ORM на SQLAlchemy или поменять БД с SQLite на mongoDB?
  • Вопрос задан
  • 219 просмотров
Решения вопроса 1
sim3x
@sim3x
Рациональнее - алхимия и миграции
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Невозможно ответить вам точно, т.к. вы очень размыто описали поставленную задачу.
1. Кто меняет модель данных? Вы как разработчик, выпуская новую версию приложения или же пользователь тоже может это делать?
2. Какого рода данные хранятся в таблицах? Реляционная у них природа или нет?

В целом, необходимость изменения схемы не должна диктовать вам какую модель данных (и следовательно СУБД) применять. В большинстве проектов использующих реляционную БД схема рано или поздно меняется, но никто не переходит на документную модель только потому что нужно выполнять миграцию данных иил схемы.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы