【问题标题】:Airflow - alembic.util.exc.CommandError: Can't locate revision identified by 'a13f7613ad25'气流 - alembic.util.exc.CommandError:找不到由“a13f7613ad25”标识的修订版
【发布时间】:2021-08-22 01:44:18
【问题描述】:
webserver_1  | The above exception was the direct cause of the following exception:
webserver_1  | 
webserver_1  | Traceback (most recent call last):
webserver_1  |   File "/usr/local/bin/airflow", line 8, in <module>
webserver_1  |     sys.exit(main())
webserver_1  |   File "/usr/local/lib/python3.7/site-packages/airflow/__main__.py", line 40, in main
webserver_1  |     args.func(args)
webserver_1  |   File "/usr/local/lib/python3.7/site-packages/airflow/cli/cli_parser.py", line 48, in command
webserver_1  |     return func(*args, **kwargs)
webserver_1  |   File "/usr/local/lib/python3.7/site-packages/airflow/cli/commands/db_command.py", line 31, in initdb
webserver_1  |     db.initdb()
webserver_1  |   File "/usr/local/lib/python3.7/site-packages/airflow/utils/db.py", line 549, in initdb
webserver_1  |     upgradedb()
webserver_1  |   File "/usr/local/lib/python3.7/site-packages/airflow/utils/db.py", line 684, in upgradedb
webserver_1  |     command.upgrade(config, 'heads')
webserver_1  |   File "/usr/local/lib/python3.7/site-packages/alembic/command.py", line 294, in upgrade
webserver_1  |     script.run_env()
webserver_1  |   File "/usr/local/lib/python3.7/site-packages/alembic/script/base.py", line 490, in run_env
webserver_1  |     util.load_python_file(self.dir, "env.py")
webserver_1  |   File "/usr/local/lib/python3.7/site-packages/alembic/util/pyfiles.py", line 97, in load_python_file
webserver_1  |     module = load_module_py(module_id, path)
webserver_1  |   File "/usr/local/lib/python3.7/site-packages/alembic/util/compat.py", line 184, in load_module_py
webserver_1  |     spec.loader.exec_module(module)
webserver_1  |   File "<frozen importlib._bootstrap_external>", line 728, in exec_module
webserver_1  |   File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
webserver_1  |   File "/usr/local/lib/python3.7/site-packages/airflow/migrations/env.py", line 108, in <module>
webserver_1  |     run_migrations_online()
webserver_1  |   File "/usr/local/lib/python3.7/site-packages/airflow/migrations/env.py", line 102, in run_migrations_online
webserver_1  |     context.run_migrations()
webserver_1  |   File "<string>", line 8, in run_migrations
webserver_1  |   File "/usr/local/lib/python3.7/site-packages/alembic/runtime/environment.py", line 813, in run_migrations
webserver_1  |     self.get_context().run_migrations(**kw)
webserver_1  |   File "/usr/local/lib/python3.7/site-packages/alembic/runtime/migration.py", line 549, in run_migrations
webserver_1  |     for step in self._migrations_fn(heads, self):
webserver_1  |   File "/usr/local/lib/python3.7/site-packages/alembic/command.py", line 283, in upgrade
webserver_1  |     return script._upgrade_revs(revision, rev)
webserver_1  |   File "/usr/local/lib/python3.7/site-packages/alembic/script/base.py", line 370, in _upgrade_revs
webserver_1  |     for script in reversed(list(revs))
webserver_1  |   File "/usr/local/lib/python3.7/contextlib.py", line 130, in __exit__
webserver_1  |     self.gen.throw(type, value, traceback)
webserver_1  |   File "/usr/local/lib/python3.7/site-packages/alembic/script/base.py", line 203, in _catch_revision_errors
webserver_1  |     compat.raise_(util.CommandError(resolution), from_=re)
webserver_1  |   File "/usr/local/lib/python3.7/site-packages/alembic/util/compat.py", line 296, in raise_
webserver_1  |     raise exception
webserver_1  | alembic.util.exc.CommandError: Can't locate revision identified by 'a13f7613ad25'

这个错误目前正在给我们的 Airflow 部署带来各种挫败感。我们在 docker 中运行气流,奇怪的是,这个问题发生在我自己而不是我的同事身上,这使得调试非常具有挑战性。我们找到了alembic util command error can't find identifier,但目前还不清楚我们可以做些什么来解决这个错误。

【问题讨论】:

  • alembic/versions/ 中的 'a13f7613ad25' 的 grep。找到它后,您需要确定是否应该通过将参考替换为另一个参考或通过查找并恢复丢失的 a13f7613ad25 来解决此问题。

标签: python airflow alembic


【解决方案1】:

您应该擦除您的数据库并从头开始重新创建它 (airflow db reset)。显然,您的数据库已损坏 - 如果您使用 Arirflow 的某些开发版本或在 Airflow 2 上运行某些较旧版本的气流 1.10 或反之,则可能发生这种情况。

我想(因为你在谈论 co-worker'syour 数据库 - 这些都是开发数据库,​​所以你应该能够从头开始重置它们。

如果这是一个使用 sqlite 的开发数据库,​​还有什么帮助是删除 sqlite3 文件(你会在${AIRFLOW_HOME} 目录中找到它。这将删除数据库,气流将在启动时自动从头开始创建一个。

【讨论】:

  • 谢谢。我们使用 docker-compose 启动我们的 postgres 数据库,我们能够使用 docker volume ls 解决我们的问题,然后使用 docker volume rm {VOLUME NAME} 删除导致问题的卷。
  • 对 Airflow 1.X 使用 airflow resetdb
猜你喜欢
  • 2020-01-05
  • 2018-05-19
  • 1970-01-01
  • 1970-01-01
  • 2011-01-15
  • 1970-01-01
  • 2016-11-24
  • 2021-07-31
  • 2020-12-22
相关资源
最近更新 更多