Ошибка выполнения cmn-data-svc-ddl-dml-mysql-2.2-sql во время AIO - PullRequest
0 голосов
/ 13 мая 2019

При запуске сценария 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.

1 Ответ

0 голосов
/ 14 мая 2019

Это может быть вызвано изменением образа докера MariaDB версии 10.2+, возможно, с установкой строгого режима SQL. Моя база данных не показала этот сбой, у нее есть эта конфигурация:

mysql> select @@sql_mode;
+--------------------------------------------+
| @@sql_mode                                 |
+--------------------------------------------+
| STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION |
+--------------------------------------------+
1 row in set (0.00 sec)

Я отправил патч для сценария DML, чтобы он предоставлял NOW () для каждого столбца MODIFIED_DATE. После слияния вы можете получить последний скрипт непосредственно из https://gerrit.acumos.org, или дождаться обновления A.I.O.

НТН

...