Как немножко выгореть на ровном месте (про кодинг)
Взялся в отпуске пописать некоммерческий проект на добровольных началах - телеграм бота. Никогда этого не делал и вообще питон вижу раз в 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/…
Ладно. У меня похоже эта ваша гиперфиксация. Попробую переписать код из статьи на питухончик.
@hubbitant натурально, ты взял sqlite, который кроме текста и чисел больше ни во что не умеет, и недоволен, что алхимия не смогла из коробки курсорную пагинацию на датах сделать??? Я всё правильно поянл?
@cauf Не, неправильно. Алхимия не умеет в курсорную пагинацию безотносительно того, какая СУБД подключена. Тут у меня вопросв нет - ну не умеет и не умеет.
А вот то, что она не поддерживает синтаксис работы с датами, пусть даже в БД это строка, для меня странно. Т.к. ORM "видит" через модель то, как я хочу интерпретировать конкретную колонку и также знает что я прикрутил sqlite, но толку от этого нет.
@hubbitant ты натурально хочешь ИИ вместо ОРМ.