hm...can you elaborate why we cannot use  "from datetime import datetime".
it worked before just fine :) i was under an impression that any pickle
serializable type can be using with xcom.

Along with a recent change in logs (logging.info does not write to log
files anymore), this makes upgrade to 1.9 quite difficult.

On Wed, Dec 6, 2017 at 9:19 AM, Bolke de Bruin <bdbr...@gmail.com> wrote:

> You should not use a naive datetime as it mentioned. So instead of of
> using “from datetime import datetime” use “from airflow.utils.timezone
> import datetime”. This sets the timezone information that is required to
> the default configured in airflow.cfg.
>
> A patch that sets the default timezone for TaskInstance is also helpful in
> this case and will be welcomed. How to do it you can find in the DAG class.
>
> Bolke.
>
> > On 6 Dec 2017, at 15:13, Sumit Maheshwari <sumeet.ma...@gmail.com>
> wrote:
> >
> > Folks,
> >
> > I've some testes, which used to pass earlier, but recently they started
> failing. When I looked closely it appeared that xcom_push is behaving
> differently.
> >
> >
> > So this is is the current code, which throws the error mentioned below
> to it
> > DEFAULT_DATE = datetime(2017, 1, 1)
> > ti = TaskInstance(task=task, execution_date=DEFAULT_DATE)
> > ti.xcom_push('abcd', 12345)
> >
> >   File "build/bdist.macosx-10.11-intel/egg/sqlalchemy_utc.py", line 31,
> in process_bind_param
> >     raise ValueError('naive datetime is disallowed')
> > StatementError: (exceptions.ValueError) naive datetime is disallowed
> [SQL: u'DELETE FROM xcom WHERE xcom."key" = ? AND xcom.execution_date = ?
> AND xcom.task_id = ? AND xcom.dag_id = ?'] [parameters: [{}]]
> >
> > When I changed the execution date param to a string, it fails with other
> error.
> > ti = TaskInstance(task=task, execution_date=DEFAULT_DATE.isoformat())
> > ti.xcom_push('abcd', 12345)
> >
> >   File "build/bdist.macosx-10.11-intel/egg/sqlalchemy_utc.py", line 29,
> in process_bind_param
> >     repr(value))
> > StatementError: (exceptions.TypeError) expected datetime.datetime, not
> '2017-01-01T00:00:00' [SQL: u'DELETE FROM xcom WHERE xcom."key" = ? AND
> xcom.execution_date = ? AND xcom.task_id = ? AND xcom.dag_id = ?']
> [parameters: [{}]]
> >
> > Somehow I feel that it is linked with sqlalchemy_utc library, though I
> may be wrong and its just missing some timezone related settings.
> > Please let me know if anyone else has faced this issue as well.
> >
> > Thanks,
> > Sumit
> >
> >
>
>

Reply via email to