[MariaDB] MariaDB5.5を10.4にアップグレードする

MariaDB 5.5で前エントリのような問題が起きたので、現時点の安定板の10.4にアップデートしてみる。

稼働中のバージョンは5.5.60。

公式サイトの以下のページの手順に従って作業する。

MariaDB – Setting up MariaDB Repositories – MariaDB
https://downloads.mariadb.org/mariadb/repositories/#distro=CentOS&distro_release=centos7-amd64–centos7&mirror=aarnet_pty_ltd&version=10.3

1. Choose a Distro: CentOS
2. Choose a Release: CentOS 7 (x86_64)
3. Choose a Version: 10.4 [Stable]

前エントリの問題は解決されたことを確認。

参考サイト

CentOS7のMariaDB5.5を10.3にアップグレードする – Qiita
https://qiita.com/egnr-in-6matroom/items/6dbb684ff03a228947bd

[MariaDB] MariaDB5.5でdatetime型のデフォルトnow()は不可

ローカルで問題なかったDBマイグレーションがテストサーバーで失敗した。エラーが起きたのはdatetime型カラムのデフォルトにnow()を指定している箇所。

DBエンジンはMariaDB 5.5.60 (ちなみにローカルはMySQL 5.7.27)。

簡単なSQLで試してみる。

datetime型にnow()をデフォルトにできない。

timestamp型だとnow()をデフォルトにできる

MariaDBの仕様かなと思って調べると以下の記事がヒット。

mysql – MariaDB CURRENT_TIMESTAMP default – Stack Overflow
https://stackoverflow.com/questions/40864951/mariadb-current-timestamp-default

CURRENT_TIMESTAMP as a default for DATETIME type is only available in 10.x.
If you’re using 5.5, it should a TIMESTAMP column.

MariaDBを10.xにアップグレードすれば解決するみたいだ。

参考サイト

MySQLのDATETIME型とTIMESTAMP型の違いを検証してみた – Qiita
https://qiita.com/ykawakami/items/2449a24e3b82ff0cbab6

MySQL :: MySQL 5.6 リファレンスマニュアル :: 11.3.1 DATE、DATETIME、および TIMESTAMP 型
https://dev.mysql.com/doc/refman/5.6/ja/datetime.html

MySQL :: MySQL 5.6 リファレンスマニュアル :: 11.3.5 TIMESTAMP および DATETIME の自動初期化および更新機能
https://dev.mysql.com/doc/refman/5.6/ja/timestamp-initialization.html

mysql – Invalid default value for ‘dateAdded’ – Stack Overflow
https://stackoverflow.com/questions/9005766/invalid-default-value-for-dateadded

[PHP] composerでocramius/package-versionsのインストールに失敗する

ネットで調べると以下の記事がヒット。

Composer plugin installation failed · Issue #1240 · laravel/homestead · GitHub
https://github.com/laravel/homestead/issues/1240

以下のようにオプションを追加してエラー回避。