Ответы пользователя по тегу Python
  • Как создать первые миграции в PostgreSQL, внутри Docker контейнера через Alembic?

    HarisNvr
    @HarisNvr Автор вопроса
    Начинающий кодер Python
    Немного отдохнув пришёл к такому решению:

    def morning_routine():
        """
        Delete old message IDs from the DB. Telegram's policy doesn't allow bots
        to delete messages that are older than 48 hours. Wake's up a little bit
        slow, to give the database time to fully load.
        :return: Nothing
        """
    
        sleep(5)
    
        session = Session(engine)
        threshold = datetime.now() - timedelta(hours=48)
        stmt = delete(Message).where(
            Message.date_added < threshold.strftime('%Y-%m-%d %H:%M:%S')
        )
    
        try:
            session.execute(stmt)
            session.commit()
        except ProgrammingError:
            subprocess.run(
                'alembic revision --autogenerate -m "Initial migration"',
                shell=True
            )
            subprocess.run('alembic upgrade head', shell=True)
        finally:
            session.close()


    Буду рад конструктивной критике!
    Ответ написан
    Комментировать
  • Задача про часы, почему решается именно так?

    HarisNvr
    @HarisNvr
    Начинающий кодер Python
    60 * 24 — это общее количество минут в одном дне (24 часа по 60 минут).

    n % (60 * 24) — это количество минут, оставшееся после деления на полное количество минут в одном дне. Это позволяет нам получить количество минут в пределах одного дня. Вдруг заданное кол-во минут будет больше одного дня, часы сделают полный оборот и встанут на 00:00.

    // 60 — делит количество оставшихся минут на 60, чтобы получить количество часов. Здесь используется целочисленное деление, которое отбрасывает дробную часть.

    minutes = n % 60 вычисляет количество минут, оставшихся после деления на 60. Это будет то количество минут в последнем (неполном) часе.
    Ответ написан
    Комментировать
  • Подключение к Postgre внутри Docker?

    HarisNvr
    @HarisNvr Автор вопроса
    Начинающий кодер Python
    В .env файле указал

    DB_HOST=postgres

    И всё заработало!
    Ответ написан
    Комментировать