Docker 不创建元表

Docker 不创建元表,docker,airflow,Docker,Airflow,我对Airflow很陌生,但我还是按照文档在本地运行了它(使用SQLite) 考虑到我需要一些额外的工具,我试着把所有的东西都放到一个Docker中,但我没有做到 我删除了添加的所有内容,但仍然找不到问题。 然后,我将文件的版本从3.8降级到3.3,并删除重启策略;但我连8080端口都打不到 再进一步挖掘,我发现了这个,它允许我访问端口8080,但是当我尝试使用命令行创建用户时,它从数据库返回一个错误,告诉我不存在名为log或dags的表。通过UI创建用户可以很好地工作,但对于我来说,db没有看

我对Airflow很陌生,但我还是按照文档在本地运行了它(使用SQLite)

考虑到我需要一些额外的工具,我试着把所有的东西都放到一个Docker中,但我没有做到

我删除了添加的所有内容,但仍然找不到问题。 然后,我将文件的版本从3.8降级到3.3,并删除重启策略;但我连8080端口都打不到

再进一步挖掘,我发现了这个,它允许我访问端口8080,但是当我尝试使用命令行创建用户时,它从数据库返回一个错误,告诉我不存在名为log或dags的表。通过UI创建用户可以很好地工作,但对于我来说,db没有看到这一点似乎很奇怪(我检查了db容器日志)

下面的docker-compose.yml就是一个小例子

version: '3.3'
services:
  airflow:
  image: apache/airflow
运行
docker compose up
,然后
docker compose运行气流db check
,我得到

[2021-02-08 21:55:06,865] {cli_action_loggers.py:105} WARNING - Failed to log action with (sqlite3.OperationalError) no such table: log
[SQL: INSERT INTO log (dttm, dag_id, task_id, event, execution_date, owner, extra) VALUES (?, ?, ?, ?, ?, ?, ?)]
[parameters: ('2021-02-08 21:55:06.862078', None, None, 'cli_check', None, 'airflow', '{"host_name": "b9b6f084640f", "full_command": "[\'/home/airflow/.local/bin/airflow\', \'db\', \'check\']"}')]
(Background on this error at: http://sqlalche.me/e/13/e3q8)
[2021-02-08 21:55:06,866] {db.py:756} INFO - Connection successful.
然后,我继续执行docker compose run airflow db init,只有两个警告

/home/airflow/.local/lib/python3.6/site-packages/alembic/ddl/sqlite.py:44 UserWarning: Skipping unsupported ALTER for creation of implicit constraintPlease refer to the batch mode feature which allows for SQLite migrations using a copy-and-move strategy.
和webserver
docker compose运行webserver-p8080

Traceback (most recent call last):
  File "/home/airflow/.local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1277, in _execute_context
    cursor, statement, parameters, context
  File "/home/airflow/.local/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 593, in do_execute
    cursor.execute(statement, parameters)
sqlite3.OperationalError: no such table: dag

sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such table: dag
[SQL: SELECT dag.dag_id AS dag_dag_id, dag.root_dag_id AS dag_root_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, dag.concurrency AS dag_concurrency, dag.has_task_concurrency_limits AS dag_has_task_concurrency_limits, dag.next_dagrun AS dag_next_dagrun, dag.next_dagrun_create_after AS dag_next_dagrun_create_after 
FROM dag 
WHERE dag.is_active = 1 OR dag.is_paused = 1]
(Background on this error at: http://sqlalche.me/e/13/e3q8)
有人有过这方面的经验吗?

这已由修复,将于今天晚些时候在气流2.0.1中发布


现在,如果不包含任何重要数据,您只需删除
aiffort.db
。然后重新运行docker compose文件或
airflow db upgrade

我找不到airflow.db文件。我认为它将遵循本地安装逻辑,但在$AIRFLOW\u HOME或/HOME/AIRFLOW中找不到任何内容。你能告诉我在哪里可以找到它吗?还有一件事,如果可以的话:我注意到PR为SQLite修复了它,但即使在设置Postgre时,根据问题中的第二个链接,我也得到了完全相同的错误。它们是否相关?请按照中的说明使用docker composeI只需将apache/airflow:2.0.1更改为apache/airflow,但两个airflow Web服务器/调度器都使用相同的“无表日志”重新启动。仍然找不到airflow.db文件,似乎根本没有创建该文件。有什么提示吗?你是否使用docker compose I linked,它应该被称为
db upgrade
,它将使用Postgres,
airflow.db
仅在使用sqlite时创建