2

我不清楚如何在同一个数据库上集成我的模型、使用烧瓶脚本和计划作业。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'

我的项目布局类似于:

在此处输入图像描述

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__.pyrun.py,它只会工作一次,因为我停止了应用程序,然后再次重新启动应用程序,我得到了与上面相同的错误。

4

0 回答 0