Xinzhe Wang
Xinzhe Wang
### 问题描述 | Describe the bug docker默认配置基于sqlite数据库创建,createdAt和updatedAt在插入数据时无法使用默认值 如下图,期望值应该是时间格式,但是实际上却没有执行函数而是把它作为字符串插入了数据库。 ### 问题网站 | Website URL localhost ### 服务部署在哪里? | Where your waline deploy? Docker ### 数据存储在哪里?| Where your comment data store? SQLite
修复 #1272 问题出在think-model-abstract的parseData函数 [ref](https://github.com/thinkjs/think-model-abstract/blob/adb8ceb7a47aa6efc666b855e1a161a0f1f3f2dd/lib/schema.js#L56) 对于 `createdAt` 和 `updatedAt`,执行到此处时 `schema[key].default` 值为string类型的 `datetime('now', 'localtime')`,后续isFunction判断为假然后插入的时候就是`datetime('now', 'localtime')`而不是预期的时间了。 完全修起来比较麻烦要改think-model-abstract实现sqlite内置函数,可能会影响到thinkjs框架。这里取了个巧手动赋值一下日期。 修复前 修复后