Экспорт всех соединений воздушного потока в новую среду - PullRequest
0 голосов
/ 11 апреля 2019

Я пытаюсь перенести все существующие соединения с воздушным потоком на новый воздушный поток.

Я просматривал параметры cli airflow connections --help, он дает возможность перечислять, но не дает возможность экспортировать / импортировать в / из формата json.

Есть ли способчерез cli / airflow ui для переноса соединений через несколько воздушных потоков?

1 Ответ

2 голосов
/ 12 апреля 2019

Вы можете либо подключиться напрямую к метабазе Airflow и вывести эти соединения, а затем загрузить их в отдельную базу данных. Однако, если вы хотите автоматизировать что-то вроде этого, вы можете начать работу, сбросив их в файл CSV:

from airflow.utils import db
from airflow.models import Connection
import csv

outfile = open('myconnections.csv', 'w')
outcsv = csv.writer(outfile)

with db.create_session() as session:
    connections = session.query(Connection).all()

conn_list = [
    [getattr(c, column.name) for column in Connection.__mapper__.columns]
    for c in connections
]
outcsv.writerows(conn_list)
outfile.close()

После этого вы можете загрузить это в новую БД вручную или с помощью аналогичного сценария.

ВАЖНО : если вы включили шифрование, пароли, хранящиеся для этих соединений, будут зашифрованы, и при загрузке их в новую БД вы должны использовать идентичный ключ фернета, иначе вы выиграли ' не сможет их расшифровать.

...