Как немножко выгореть на ровном месте (про кодинг)
Взялся в отпуске пописать некоммерческий проект на добровольных началах - телеграм бота. Никогда этого не делал и вообще питон вижу раз в 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/…
Ладно. У меня похоже эта ваша гиперфиксация. Попробую переписать код из статьи на питухончик. 😖🤦♂️🤦♂️🤦♂️
нравится это
Dmitry
в ответ на ХаББыватель • • •Но иногда это очень интересно, не так ли)
ХаББыватель
в ответ на Dmitry • •NetworkMan72
в ответ на ХаББыватель • •ХаББыватель
в ответ на NetworkMan72 • •cauf 🇷🇺
в ответ на ХаББыватель • • •ХаББыватель
в ответ на cauf 🇷🇺 • •Не, неправильно. Алхимия не умеет в курсорную пагинацию безотносительно того, какая СУБД подключена. Тут у меня вопросв нет - ну не умеет и не умеет.
А вот то, что она не поддерживает синтаксис работы с датами, пусть даже в БД это строка, для меня странно. Т.к. ORM "видит" через модель то, как я хочу интерпретировать конкретную колонку и также знает что я прикрутил sqlite, но толку от этого нет.
cauf 🇷🇺
в ответ на ХаББыватель • • •ХаББыватель
в ответ на cauf 🇷🇺 • •ХаББыватель
Источник неизвестен • — (Тюмень) •Уже ни в чём. Я же написал в исходной записи что нашёл костыль как это делается в том стеке, который я прикрутил в проект.
ps там проблема была не с сортировкой, а с критериями where.
Kostenko Fedddor
в ответ на ХаББыватель • •Кстати, SQLite используется обычно, вроде как, для ускорения разработки MVP. Но есть подозрение, что потом в разы больше тратится времени для переезда на нормальную БД, чем его экономится из-за изначального подключения SQLite.
ХаББыватель
в ответ на Kostenko Fedddor • — (Тюмень) •