[ 
https://issues.apache.org/jira/browse/AIRFLOW-30?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kevin Mandich reassigned AIRFLOW-30:
------------------------------------

    Assignee: Kevin Mandich

> Make preoperators part of the same transaction as the actual operation
> ----------------------------------------------------------------------
>
>                 Key: AIRFLOW-30
>                 URL: https://issues.apache.org/jira/browse/AIRFLOW-30
>             Project: Apache Airflow
>          Issue Type: Improvement
>          Components: operators
>            Reporter: Bence Nagy
>            Assignee: Kevin Mandich
>
> All my use cases would work better if each operator would execute everything 
> in one transaction. Two examples:
> - I want to {{GenericTransfer}} a set of rows from one DB to another, and I 
> have to create the table first in the destination DB. I feel like it'd be a 
> lot more clean if I didn't have empty tables lying around if the insertion 
> fails for some reason later on.
> - I want to {{GenericTransfer}} all rows from an entire table periodically to 
> sync it from one DB to another. To do this correctly I want to clear the 
> destination table first to make sure I end up with no duplicate rows, so I'd 
> have a {{DELETE * FROM dst_table}} preoperator. If the insertions fail 
> afterwards, I'd end up with no data (it would be better in most cases to fall 
> back to the old data), and even if everything is working correctly, I'll have 
> an empty table while the insertions as still executing.
> To fix this, the relevant {{DbApiHook}} methods could support a new kwarg to 
> set whether it should commit at the end.
> Thoughts?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to