我有一个带有PostgresOperator的Airflow dag来执行SQL查询。我想切换到不同的数据库(使用相同的连接)与配置(运行w/config)。但它给出了一个错误database "{{ dag_run.conf['database'] }}" does not exist
我尝试创建一个自定义的postgresql操作符与类似的代码here
我在下面添加了代码,但它给了我同样的错误(不是渲染模板)
from airflow.providers.postgres.operators.postgres import PostgresOperator as _PostgresOperator
class PostgresOperator(_PostgresOperator):
template_fields = [*_PostgresOperator.template_fields, "database"]
字符串
1条答案
按热度按时间kxkpmulp1#
PostgresOperator
已弃用。您应该迁移到SQLExecuteQueryOperator
。PostgresOperator
中的database
的等价物是SQLExecuteQueryOperator
中的schema,如下所示。由于
SQLExecuteQueryOperator
是泛型操作符,它允许通过hook_params
传递不同的钩子参数。然而,hook_params
不是模板字段,因此您应该子类SQLExecuteQueryOperator
将其添加为模板字段。字符串
这将给予给予:
的数据
显然,
2023-07-28
不是一个有效的模式,但这只是为了表明渲染是有效的。