Пропустить до основного содержимого


Как немножко выгореть на ровном месте (про кодинг)

Взялся в отпуске пописать некоммерческий проект на добровольных началах - телеграм бота. Никогда этого не делал и вообще питон вижу раз в 5 лет. Ну и хрен с ним, нейросети жи есть. Заюзал aiogram 3 + SQLAlchemy 2 ORM + asyncio + sqlite (можно же безболезненно потом переключить БД, правда же?).

Всё шло хорошо. В последний день отпуска начал делать вывод списка событий с пагинацией. Я же теперь дофига умный, знаю что cursor pagination лучше чем limit + offset. Реализовал не без помощи нейросетей всё это. А оно не работает.

И на следующий день ковыряния не работало, и на третий. На четвёртый я выяснил что SQLAlchemy не может сравнивать даты при составлении SQL запроса с подключенным sqlite. Сортировка по умолчанию как-раз нужна была по дате. И похер ему что в модели тип колонки прописан. А вот так может: func.DATETIME(поле1) > func.DATETIME(поле2)

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

Сегодня решил завязывать со всеми этими ноу-хау и запилить обыкновенный limit + offset. Но это не точно, потому что я решил не заморачиваться и сделать offset ещё в понедельник, однако я всё ещё здесь и ничего не работает.

Объяснение реализации метода на nodejs например: blog.appsignal.com/2024/05/15/…

Ладно. У меня похоже эта ваша гиперфиксация. Попробую переписать код из статьи на питухончик. 😖🤦‍♂️🤦‍♂️🤦‍♂️

в ответ на ХаББыватель

Понимаю что анектоды про программистов это не анекдоты - "понадобился программисту функционал - но так он программист он решил не брать готовый продукт а написать себе фреймфорк с нуля "😁:D:
в ответ на NetworkMan72

Да я не против готового, но не нашёл... не прикручивать же Flask или Django к телеграм боту. А библы для пагинации с SQLAlchemy неть 😒
в ответ на ХаББыватель

натурально, ты взял sqlite, который кроме текста и чисел больше ни во что не умеет, и недоволен, что алхимия не смогла из коробки курсорную пагинацию на датах сделать??? Я всё правильно поянл?
в ответ на cauf 🇷🇺

Не, неправильно. Алхимия не умеет в курсорную пагинацию безотносительно того, какая СУБД подключена. Тут у меня вопросв нет - ну не умеет и не умеет.

А вот то, что она не поддерживает синтаксис работы с датами, пусть даже в БД это строка, для меня странно. Т.к. ORM "видит" через модель то, как я хочу интерпретировать конкретную колонку и также знает что я прикрутил sqlite, но толку от этого нет.

в ответ на cauf 🇷🇺

Я хочу чтоб меня отпустило и сделать банальный limit + offset, но чёт пока не отпускает.
Источник неизвестен

friendica (DFRN) - Ссылка на источник
ХаББыватель
 — (Тюмень)

Уже ни в чём. Я же написал в исходной записи что нашёл костыль как это делается в том стеке, который я прикрутил в проект.

ps там проблема была не с сортировкой, а с критериями where.

в ответ на ХаББыватель

Ага, значит нейросети еще не скоро заменят программистов!
Кстати, SQLite используется обычно, вроде как, для ускорения разработки MVP. Но есть подозрение, что потом в разы больше тратится времени для переезда на нормальную БД, чем его экономится из-за изначального подключения SQLite.
в ответ на Kostenko Fedddor

Это и есть по сути MVP. Надеюсь при переезде на другую СУБД, которую поддерживает Алхимия, проблем не возникнет, так как запросы пишу только в синтаксисе ORM.