Closed7

IceshrimpをMisskeyに (無理やり) 戻す

甘瀬ここあ甘瀬ここあ

IceshrimpからMisskeyに戻したかったのでメモ

IceshrimpにあってMisskeyにない機能

ここではデータベースのテーブルに関わるものだけ列挙してみる (v13で削除されたものは列挙しない)

  • 投稿の編集
  • LibreTranslate
  • MOTD (多分)
  • おすすめタイムライン (多分)
甘瀬ここあ甘瀬ここあ

移行計画としては

  1. Iceshrimp固有の部分を削除する
  2. Misskeyのv13の古いのをいれる
  3. そこから一気に最新のMisskeyにアップデートする
  4. もし3.が失敗したら段階的なアップデートを試みる
甘瀬ここあ甘瀬ここあ

SharkeyがFirefish相当まで戻す方法を書いてたのでそれを参考にFirefishまでスキーマを戻す (Migration IceshrimpRepo1689965609061 has been reverted successfully.が出ればOK?)

注意点

  • まずpg_trgmを僕の環境ではDROPできなくて途中でマイグレーションに失敗した
  • なのでDROP EXTENSION pg_trgm CASCADE;をpostgresユーザーで実行して無理やり削除した
甘瀬ここあ甘瀬ここあ

トラブルシューティング

ログインできない

IceshrimpはMisskeyと異なり、argon2をパスワードのハッシュに使用しています。そのため、単純なデータベースの変更だけではアカウントにアクセスできなくなります (一敗)

メールアドレスとSMTPを設定している場合: パスワードをリセットしてください。
メールアドレスもSMTPも設定していない場合: これを参考にサインイン部分の動作を書き換えて、argon2が使えるようにして、どうにかしてパスワードをリセット (変更は不可)。終わった後は元のMisskeyに戻せばOK。
テーブルを書き換えて無理やりbcryptに変換した人: 別のアカウントがあるなら2番目の手順でアカウントにアクセスした後、rootを移してパスワードを初期化。ないなら諦めろ。

APP_IMPORTで読み込みに失敗する

/flashにアクセスしてすべてのデータを削除すると治ります。

甘瀬ここあ甘瀬ここあ

rootの変更方法

以下のsqlを実行して、Misskeyを再起動する。

BEGIN;
UPDATE meta
SET "rootUserId" = '(ユーザーのID)'
WHERE id = 'x';
COMMIT;
このスクラップは8時間前にクローズされました