Sqlalchemy: Как обновлять столбец каждые 24 часа? - PullRequest
0 голосов
/ 21 января 2020

Я работаю над REST API с python flask, и я реализовал следующую схему с помощью sql -alchemy.

from app import db
from datetime import datetime
from app.utilities.commons import *

class User(db.model):
    id = id = db.Column(db.String(36), primary_key=True, unique=True, default=get_unique_id())
    username = db.Column(db.String(64), unique=True, nullable=False)
    first_name = db.Column(db.String(64), nullable=False, unique=False)
    last_name = db.Column(db.String(64), nullable=False, unique=False)
    organism = db.Column(db.String(35), nullable=False, unique=False)
    allowed_access_per_day = db.Column(db.Integer, nullable=False, default=0)
    last_modified = db.Column(db.DateTime, nullable=True, default=None)
    created_at = db.Column(db.DateTime, default=datetime.utcnow)

Что я хочу сделать, это сбросить атрибут allowed_access_per_day (обновить его до 0) каждый день 00:00. В качестве временного решения я делаю создание потока python, который обновляет таблицу каждые 24 часа, что не является хорошей идеей, поскольку оно не сохраняет одинаковое поведение для всех приложений, подключающихся к базе данных. Я хочу, чтобы это поведение указывалось c для базы данных (как триггеры и таймеры в SQL). Как сделать это в sql -алхимии?

Ответы [ 2 ]

2 голосов
/ 21 января 2020

вы можете вставить дополнительный столбец, в котором вы пишете, для которого была установлена ​​дата allowed_access_per_day. Затем в запросе вы проверяете, был ли он за предыдущий день.

1 голос
/ 22 января 2020

В ядре sqlalchemy я не нашел ничего похожего на работу / планирование. В дополнение к sqlalchemy есть несколько дополнительных пакетов. Кажется, вы должны написать расписание

users.update().values(allowed_access_per_day =0)

самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...