sqlalchemy.exc.IntegrityError:(pyodbc.IntegrityError)('23000', '[23000] [FreeTDS] [SQL Server]无法在a中插入显式值 时间戳列。将INSERT与列列表一起使用以排除 timestamp列,或将D EFAULT插入timestamp列。 (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知道现在插入时间戳?
This似乎是处理SQLAlchemy的luigi代码。
PS。这里的问题是luigi正在使用SQLAlchemy,我不想修改luigi的代码,但如果你能在luigi方面提出一个简单的解决方案,那也可以。
答案 0 :(得分:0)
所以,感谢这些优秀的绅士@LaugingVergil和@HaleemurAli我刚刚决定在我的dockerfile中添加另一个sed
hack ...
我在RUN sed -i 's/TIMESTAMP/DateTime/g' /usr/lib/python3.4/site-packages/luigi/db_task_history.py
CMD /usr/bin/luigid