我有气流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吗?
答案 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
来重置数据库并更新架构以获取最新版本。