[英]Node.js with knex + Mysql migrate error while rename column cause default value
我是nodejs
,我的英語不好請幫助我,我只是想使用knex
在nodejs(express)
遷移我的數據庫,我正在使用 Mysql 作為數據庫。 我想重命名表中的一個字段,當我嘗試遷移我的數據庫時,我遇到了一些錯誤默認值的問題。
這是我想要做的:
我的遷移
exports.up = function(knex) { return knex.schema.table ('tbl_skills', function(table) { table.renameColumn('preminum_price', 'premium_price') }) };
這是我的數據庫結構
Name | Datatype | length | Default |
id | INT | 20 | No default |
preminum_price | DOUBLE | 5,2 | No default |
insertdate | TIMESTAMP| | 0000-00-00 00:00:00 |
updatedate | TIMESTAMP| | 0000-00-00 00:00:00 |
這就是我在嘗試 knex migrate 時得到的:最新
migration file "20191125105226_alter_tbl_skills.js" failed
migration failed with error: alter table `tbl_skills` change `preminum_price` `premium_price` double(5,2) NOT NULL - ER_INVALID_DEFAULT: Invalid default value for 'insertdate'
Error: ER_INVALID_DEFAULT: Invalid default value for 'insertdate'
我不知道如何使用默認值設置 insertdate 的值。 請幫忙
這很可能是因為服務器 SQL 模式 - NO_ZERO_DATE 。
在嚴格模式下,不允許將 '0000-00-00' 作為有效日期。 您仍然可以使用 IGNORE 選項插入零日期。 如果不是嚴格模式,則接受日期但會生成警告。 如果您有權訪問 my.ini(mysql conf 文件),請從 sql-mode 中刪除 NO_ZERO_DATA 並重新啟動服務器。
你可以用 SHOW VARIABLES LIKE 'sql_mode' 檢查它
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.