«db init» с postgres для воздушного потока

#airflow

Вопрос:

Я ссылаюсь на этот документ и эту статью, связывая базу данных Postgres с Airflow.

В частности, я добавил эту строку в файл airflow.cfg :

 sql_alchemy_conn = postgresql psycopg2://airflowadmin:airflowadmin@localhost/airflowdb
 

где airflowadmin указаны имя пользователя и пароль для пользователя и пароля postgres, а airflowdb также создана база данных postgres со airflowadmin всеми правами.

Однако теперь, когда я инициализирую базу данных с airflow db init помощью , я все еще вижу sqlite связанную базу данных. Полный выход:

 DB: sqlite:////home/userxxxx/airflow/airflow.db
[2021-09-07 12:43:53,827] {db.py:702} INFO - Creating tables
INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
WARNI [airflow.models.crypto] empty cryptography key - values will not be stored encrypted.
WARNI [unusual_prefix_xxxxxxxxxxxxxxxxxxxxxxxxx_example_kubernetes_executor_config] Could not import DAGs in example_kubernetes_executor_config.py: No module named 'kubernetes'
WARNI [unusual_prefix_xxxxxxxxxxxxxxxxxxxxxxxxxxxxx_example_kubernetes_executor_config] Install kubernetes dependencies with: pip install apache-airflow['cncf.kubernetes']
Initialization done
 

Чего мне не хватает?

Ответ №1:

Убедитесь airflow.cfg , что изменяемый файл совпадает с тем, который на самом деле загружается воздушным потоком. Из командной строки запустите:

airflow info

Выполните поиск в разделе Информация о путях и сравните его с путем к папке с airflow.cfg файлом, который вы изменяете.

информация о воздушном потоке:

 ache Airflow
version                | 2.1.2                                              
executor               | SequentialExecutor                                 
task_logging_handler   | airflow.utils.log.file_task_handler.FileTaskHandler
sql_alchemy_conn       | sqlite:////home/vagrant/airflow/airflow.db         
dags_folder            | /home/vagrant/airflow/dags                         
plugins_folder         | /home/vagrant/airflow/plugins                      
base_log_folder        | /home/vagrant/airflow/logs                         
remote_base_log_folder |        

                                                                          
System info
OS         
...
...
                            
Paths info
airflow_home    | /home/vagrant/airflow
...     
 

Если значение по умолчанию не определено в процессе локальной установки, airflow_home AIRFLOW_HOME=~/airflow оно равно , поэтому я предполагаю, что это может быть причиной вашей проблемы.

Комментарии:

1. Спасибо. ты прав. Я дважды устанавливал Airflow: один раз на локальном, один раз в виртуальном pipenv. Локальный запускается на Sqlite. Pipenv, я пытаюсь связать с postgres. Но это все равно указывает на airflow_home местный воздушный поток.