ubuntu16 から ubuntu20 へのサーバーの移行を準備しています。と言っても、期限が迫っているので、もう準備とは言えない。
MySQL の バージョンが ubuntu16 では 5.7.33 だったのが、ubuntu20 では 8.0.23 となっています。プログラムを移している中で気づいたのですが、時刻がデータベースに記入されなくなっていました。例をあげると ubuntu16 では下記のように書いてテーブルを作っていたものがありました。
create table if not exists `テーブル名` (id int auto_increment primary key, time TIMESTAMP, name text, realName text, thread text, filename text, movie longblob, display text)
書き込むときは下記のような感じでした。id と time のところは何も指定せず自動的に値が挿入されます。
INSERT INTO `テーブル名` (name, realName, thread, filename, movie, display) VALUES ('ある値', 'ある値', 'ある値', 'ある値', 'ある値', 'ある値')
同じように ubuntu20 でやってみると動きません。time のところが null になります。もともとの書き方がどうなのかというのもあるかもしれませんが、下記のように変更しました。
create table if not exists `テーブル名` (id int auto_increment primary key, time datetime DEFAULT CURRENT_TIMESTAMP, name text, realName text, thread text, filename text, movie longblob, display text)
アップデートするときに時刻が変更されるような設定もあるようです。それは今回は必要ない。記入のところは特に変更しませんでした。