LINUX.ORG.RU

как легко работать с базой?

 , , , ,


1

1

Я делаю проект в области web scraping, скрипт работает в режиме пула, каждый воркер (или хз как правильно называется, поток/процесс) получает свой объект для работы, в котором содержится URL сайта и прочая информация.

Затем это всё дело работает, по ходу работы раздувает объект нужными мне данными, и я после получения результатов (объекта который уже наполнен данными) уже отправляю SQL запрос для каждого объекта в локальную базу sqlite, туда пишутся некоторые данные объекта которые мне интересны.

Мне вот что не нравится. Если я хочу какое-то новое свойство добавить в объекте, то мне приходится менять структуру таблицы и менять руками SQL запрос, тестить всё это дело потом. Очень накладно выглядит.

Может оно как-то всё можно более красиво делать? И при этом не иметь overhead'а. Я слышал модные слова вроде ORM, и ещё что-то такое, и хочу понять насколько это применимо для меня и что тут вообще можно придумать.

Раньше я не парился и тупо писал всё в файлы, было очень удобно но потом стало файлов нехватать, теперь пытаюсь красиво перелезть в базу (локальную sqlite).


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

anonymous ()

Спасибо ребят! Буду изучать эти технологии, пока что правда не могу сходу понять для чего Alembic используется

rubro ()

Народ скажите, а вот если меня интересуют связи вида many-to-many, в алхимии с этим всё в порядке будет?

rubro ()

... отправляю SQL запрос для каждого объекта в локальную базу sqlite

sqlite

really?

bvn13 ★★★★★ ()

Тебе проще всего хранить в таблицах pandas и периодически их синхронизировать с sql встроенным механизмом pandas. Pandas - это такой Excel командной строки на стероидах, умеет кучу табличных форматов.

Shadow ★★★★★ ()

Если нужно именно rdbm, есть peewee - сильно быстрее и человечек алхимии, many to many есть.

Shadow ★★★★★ ()

@pawnhearts, спасибо!

@bvn13, что не так?

@Shadow, ок спасибо! От pandas пока что откажусь ввиду overhead'а, буду иметь ввиду что так вообще делают. По peewee нагуглил вот такие минусы: 1. Does not support automatic schema migrations 2. Many-to-Many queries are not intuitive to write

Народ подскажите, мне говорят предубеждения что sqlalchemy это стандарт и более популярно чем остальное, и поэтому начинать стоит именно с неё чтобы понять принципы, и далее уже с неё по необходимости уходить на другие решения. Такая позиция верная? Я начинающий и мне пока что долго всё даётся.

rubro ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.