個人的な理由から、私はいつもプログラムを最新バージョンにアップグレードするのが好きです(無思考のモルモット)。これにはスマートフォンのOS、サーバーOS、各種ソフトウェアやアプリなど、すべてが含まれます。もともと私はMysqlをよく使うのが好きで、管理がしやすいため、可能な限りすべてのプログラムをMysqlで構築してきました。
当初は、MemosのデフォルトであるSQLiteデータベースを使わず、リモートデータベースは常にローカルより少し遅くなるため、読み込みが遅いのだと思っていました。そのため、考えなしに最新版の0.20.0にアップグレードしました。執筆時点で、リリースが取り下げられたようです。ちょうど数日前に、サーバーパネルを重くて使いづらいものから1Panelに変更し、Memosのデフォルト設定でテスト構築を行ったところ、トップページの読み込みは依然として非常に遅く、ネットワーク活動を確認すると、トップページで一つのラップされたgomarkライブラリを読み込んでおり、ファイルサイズが大きく、平均読み込み時間は約15ミリ秒でした。
習慣的に他の有識者のブログをチェックしたところ、木木さんのバージョンはまだ0.18.1のままでした。また、最新のアップデートで多くの機能が削除され、使いづらくなってきたため、バージョンを戻すことを考えました。
昨日、最初は日記を投稿せず、Dockerイメージを0.20.0から0.18.1に変更し、無事に0.18.1へ戻すことに成功しました。その後、他の有識者の戻し方を見て、データベースの変更が必要だと気づきましたが、私はMysqlを使っていたため問題ないと思い、変更しませんでした。しかし、今日の朝、日記を投稿しようとしたところ、投稿できないことがわかりました。

数日前にサーバーのOSを変更した際にバックアップを取っており、毎日のOSS同期バックアップも行われていました。しかし、昨日サイトのカスタマイズをいくつか行ったため、念のためデータベースのバックアップを行いました。どんな変更を行う前にも、必ずバックアップを取ってください。必ずです。絶対にです!!!
理由は、新バージョンでidx_memo_resource_nameとidx_resource_resource_nameという2つのインデックスが追加されたためで、これらはそれぞれmemoテーブルとresourceテーブルにあります。
[!NOTE]
20240224更新:昼にMemosにTelegram Botを追加しようとしたところ、正常に追加・使用できませんでした。0.20.0と0.18.1のデータテーブルをよく比較したところ、reactionテーブルが新たに追加されており、またsystem_settingテーブルに低バージョンにはないmemo-display-with-updated-tsというレコードが追加されていることがわかりました。
memoテーブルにインデックスが存在するか確認します。

DROP INDEX文を使ってインデックスを削除します。

インデックスidx_memo_resource_nameがmemoテーブルから正常に削除されました。
ALTER TABLE文を使って、memoテーブルのresource_nameカラムを削除します。

resourceテーブルのインデックスを確認します。

DROP INDEX文を使ってインデックスを削除します。

ALTER TABLE文を使って、resourceテーブルのresource_nameカラムを削除します。

まず、データベースにreactionテーブルが存在するか確認します。

reactionテーブルを削除します。

system_settingテーブルのnameカラムのレコードを確認します。

memo-display-with-updated-tsのレコードを削除します。

上記の操作を完了後、再度イメージを再取得することをお勧めします。
これで完了です。現在、無事に0.20.0から0.18.1へダウングレードできました。Memosのダウングレード方法に関する資料が非常に少ないため、ここにMysqlを使用した私の手順を共有します。必要としている方々の助けになれば幸いです。