运行脚本acumos_k8s_prep.sh在数据库初始化期间引发错误:
+ sedi '1s/^/use acumos_cds;\n/' cmn-data-svc-ddl-dml-mysql-2.2.sql
+ sed --version
+ sed -i -- '1s/^/use acumos_cds;\n/' cmn-data-svc-ddl-dml-mysql-2.2.sql
+ mysql -h 172.16.83.xxx -P 30001 --user=xxx --password=xxx
ERROR 1364 (HY000) at line 587: Field 'MODIFIED_DATE' doesn't have a default value
++ fail
++ set +x
在587行中插入了一个条目
INSERT INTO C_ROLE (ROLE_ID, NAME, ACTIVE_YN, CREATED_DATE) VALUES ('12345678-abcd-90ab-cdef-1234567890ab', 'MLP System User', 'Y', CURRENT_TIMESTAMP());
进入表C_ROLE
CREATE TABLE C_ROLE (
ROLE_ID CHAR(36) NOT NULL PRIMARY KEY,
NAME VARCHAR(100) NOT NULL,
ACTIVE_YN CHAR(1) DEFAULT 'Y' NOT NULL,
CREATED_DATE TIMESTAMP NOT NULL DEFAULT 0,
MODIFIED_DATE TIMESTAMP NOT NULL,
UNIQUE INDEX C_ROLE_C_NAME (NAME)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
对于MODIFIED_DATE确实没有默认值。
答案 0 :(得分:0)
这可能是由于MariaDB版本10.2+泊坞窗映像的更改所致,可能对SQL模式设置了严格。我的数据库没有显示此失败,它具有以下配置:
function monthDiff(date1, date2) {
var months;
months = (date2.getFullYear() - date1.getFullYear()) * 12;
months -= date1.getMonth() + 1;
months += date2.getMonth();
return months <= 0 ? 0 : months;
}
我向DML脚本提交了补丁,因此它为每个MODIFIED_DATE列提供NOW()。合并后,您可以直接从https://gerrit.acumos.org获取最新脚本,也可以等待对A.I.O的更新。
HTH