为什么将气流数据库从v1.8.2升级到v.10.3失败?

时间:2019-05-23 13:13:07

标签: airflow

我有气流v1.8.2,并尝试升级到v1.10.3

更新后,我运行命令

airflow upgradedb

并得到错误:

...
  File "/opt/nio/lib/airflow/sqlalchemy/engine/default.py", line 536, in do_execute
cursor.execute(statement, parameters)
sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) column 
dag.description does not exist
LINE 1: ...fileloc AS dag_fileloc, dag.owners AS dag_owners, 
dag.descri...
                                                         ^
[SQL: 'SELECT dag.dag_id AS dag_dag_id, dag.is_paused AS dag_is_paused, 
dag.is_subdag AS dag_is_subdag, dag.is_active AS dag_is_active, 
dag.last_scheduler_run AS dag_last_scheduler_run, dag.last_pickled AS 
dag_last_pickled, dag.last_expired AS dag_last_expired, 
dag.scheduler_lock AS dag_scheduler_lock, dag.pickle_id AS 
dag_pickle_id, 
dag.fileloc AS dag_fileloc, dag.owners AS dag_owners, dag.description 
AS dag_description, dag.default_view AS dag_default_view, 
dag.schedule_interval AS dag_schedule_interval \nFROM dag \nWHERE 
dag.dag_id = %(dag_id_1)s \n LIMIT %(param_1)s'] [parameters: 
{'dag_id_1': u'custom_feeds_unit_dna', 'param_1': 1}] (Background on 
this error at: http://sqlalche.me/e/f405) 

为什么数据库升级失败? 我应该首先更新到气流v1.9.0而不是v1.10.3吗?

1 个答案:

答案 0 :(得分:0)

根据link in the error message,这似乎是一个ProgrammingError。这意味着语法已关闭,这可以通过首先更新到v1.9.x来解决,因为很可能编写了updatedb代码以从以前的版本进行更新。因此,针对v1.10.x的updatedb可能能够从v1.9.x更新模式,而v1.9.x则可能能够从v1.8.x更新。

但是,这要花费很多时间,因为它必须遍历系统上的每条路径,然后对其进行适当的索引,这需要大量的工作(和大量的资源)。

如果不需要元数据来进行宝贵的运行,则可以使用airflow resetdb来重置数据库并更新架构以获取最新版本。