这个错误通常是由于旧版本的Airflow数据库迁移到新版时产生的。可以尝试先将旧数据库备份并删除,再重新初始化数据库。
以下是解决方法的代码示例:
cp airflow.db airflow.db.backup
rm airflow.db
$ airflow db init
如果还是无法解决,可以尝试删除Airflow元数据库中相关的约束,方法如下:
$ airflow db
ALTER TABLE dag_tag DROP CONSTRAINT dag_tag_dag_id_fkey;
ALTER TABLE dag_tag DROP CONSTRAINT dag_tag_tag_id_fkey;
ALTER TABLE dag_run DROP CONSTRAINT dag_run_dag_id_fkey;
ALTER TABLE task_instance DROP CONSTRAINT task_instance_dag_id_fkey;
ALTER TABLE task_fail DROP CONSTRAINT task_fail_dag_id_fkey;
quit
airflow db init
。注意:删除约束可能会影响已经存在的任务和DAG,如果有需要的话,可以先备份元数据库。