Почему сбой обновления Airflow db до v.10.3 с v1.8.2? - PullRequest
0 голосов
/ 23 мая 2019

У меня 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) 

Почему не удается обновить базу данных? Должен ли я сначала обновиться до версии 1.0.0 airflow, а не до версии 1.1.3?

1 Ответ

0 голосов
/ 24 мая 2019

Что касается ссылки в сообщении об ошибке , похоже, это ошибка ProgrammingError. Это подразумевает, что синтаксис отключен, что может быть решено путем первого обновления до v1.9.x, поскольку код updatedb, скорее всего, написан для обновления его с предыдущей версии. Таким образом, updatedb для v1.10.x, вероятно, сможет обновить схему с v1.9.x, а v1.9.x, вероятно, сможет обновить с v1.8.x.

Однако это занимает много времени, потому что он должен обойти каждый путь в системе и затем соответствующим образом проиндексировать его, что требует большой работы (и большого количества ресурсов).

Если вам не нужны метаданные для драгоценных прогонов, вы можете использовать airflow resetdb, чтобы просто сбросить базу данных и обновить схему до последней версии.

...