将Flask-APScheduler与flask-migrate和flask脚本集成

时间:2017-09-13 15:42:16

标签: python flask apscheduler flask-migrate flask-script

我不清楚如何在同一个数据库中使用flask-script和预定作业来集成我的模型。 Flask-apscheduler似乎有一些工作可以为你创建数据库。

当我运行python manage.py db init时,它将创建一个带有apscheduled_jobs表的数据库。现在,如果我运行python manage.py db migrate,我会收到错误:

sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) UNIQUE constraint failed: apscheduler_jobs.id [SQL: 'INSERT INTO apscheduler_jobs (id, next_run_time, job_state) VALUES (?, ?, ?)'] [parameters: ('job1', 1505317109.041658, <memory at 0x000001AD6754E288>)]

其次是:

apscheduler.jobstores.base.ConflictingIdError: 'Job identifier (job1) conflicts with an existing job'

我的项目布局类似于:

enter image description here

intel\_init__.py看起来像:

from flask import Flask
from flask_apscheduler import APScheduler
from .models import db


app = Flask(__name__)
app.config.from_object('config.Config')
db.init_app(app)

scheduler = APScheduler()
scheduler.init_app(app)
scheduler.start()

manage.py

from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
from intel_app import app, db

migrate = Migrate(app, db)

manager = Manager(app)
manager.add_command('db', MigrateCommand)

if __name__ == '__main__':
    manager.run()

编辑:我将schedule.start()intel\_init__.py移到run.py模块,它只会运行一次,因为它停止了应用,然后再次重启应用,我得到了同样的结果如上所述的错误。

0 个答案:

没有答案