2

sqlalchemy.exc.IntegrityError: (pyodbc.IntegrityError) ('23000', '[23000] [FreeTDS][SQL Server]无法将显式值插入时间戳列。将 INSERT 与列列表一起使用以排除时间戳列,或在时间戳列中插入一个 D EFAULT。(273) (SQLExecDirectW)') [SQL: 'INSERT INTO task_events (task_id, event_name, ts) OUTP UT inserted.id VALUES (?, ?, ?)'] [参数:( 54, 'RUNNING', datetime.datetime(2017, 1, 16, 18, 5, 55, 595066))]

该错误似乎与此有关:

You can't insert explicit values into a timestamp column. Timestamp values are unique binary numbers that are automatically generated.

SQLAlchemy 不知道这一点吗?是否有一些关键\设置让 SQLAlchemy 知道现在插入时间戳?

似乎是处理 SQLAlchemy 的 luigi 代码。

附言。这里的问题是 luigi 正在使用 SQLAlchemy,我不想修改 luigi 的代码,但是如果你可以在 luigi 方面提出一个简单的解决方案,那也可以。

4

1 回答 1

0

所以,感谢这些优秀的绅士@LaugingVergil 和@HaleemurAli,我刚刚决定在sed我的dockerfile 中添加另一个hack ......

我只是RUN sed -i 's/TIMESTAMP/DateTime/g' /usr/lib/python3.4/site-packages/luigi/db_task_history.py以前CMD /usr/bin/luigid

于 2017-01-16T20:00:05.220 回答