Airflow - alembic.util.exc.CommandError: Can't locate revision identified by 'a13f7613ad25'

Airflow - alembic.util.exc.CommandError: Can't locate revision identified by 'a13f7613ad25'

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 中,奇怪的是,这个问题发生在我自己身上而不是我的同事身上,这使得调试变得非常具有挑战性。我们找到了 ,但是还不是很清楚我们可以做些什么来解决这个错误。

您应该擦除数据库并从头开始重新创建它 (airflow db reset)。显然你的数据库已经损坏 - 如果你使用了一些开发版本的 Arirflow 或 运行 Airflow 2 上的一些旧版本的 airflow 1.10 或相反,这可能会发生。

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

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

如果卷是通过 docker-compose 创建的,您应该使用 docker-compose down --volumes