当我使用变量参数初始化dag时,会引发异常

时间:2018-12-20 18:51:43

标签: python-3.x airflow

我正在使用apache-airflow == 1.10.0

我收到如下错误:

sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "variable" does not exist
LINE 2: FROM variable

当我声明类似的任务时:

 from airflow.models import Variable
 dag = DAG('dag')
 PythonOperator('task_id', ratio=Variable.get('ratio'), dag=dag)

因为我还没有变量表。我收到了不会影响任何错误的错误,但是如何防止这种情况发生?

2 个答案:

答案 0 :(得分:2)

运行airflow upgradedb。它将创建所有丢失的表。

答案 1 :(得分:1)

一种解决方法(以防airflow upgradedb不起作用)是执行以下操作

  1. 删除DAGs代码中对变量的所有调用,可以通过将所有变量放入函数set_variables()并将其注释掉来实现
  2. 启动airflow webserver并从变量UI中创建一个虚拟变量,这将创建变量表
  3. 现在您可以取消注释set_variables()了,因为有了变量表,对变量的编程调用现在可以使用了