1
0
Fork 1
mirror of https://example.com synced 2024-11-24 15:26:39 +09:00
firefish/docs/migrate_back.md
2024-01-22 07:22:29 +09:00

6.6 KiB
Raw Blame History

このフォークから本家版に移行する

移行には時間が掛かるので、必ずまとまった時間が取れるときに行ってください。

サーバーに Firefish を直接インストールしている場合

  1. サーバーのバックアップを取る

  2. サーバーを停止する

    sudo systemctl stop firefish
    
  3. Firefish がインストールされているディレクトリ (e.g., /home/firefish/firefish) へ移動する

    cd /home/firefish/firefish
    
  4. 最新版にアップデートする

    ./update.sh
    
  5. .config/default.yml に書かれているデータベースの名前を確認する(以下の例では firefish_db

    db:
      host: localhost
      port: 5432
      db: firefish_db  # これ
    
  6. このフォークで加えられたデータベースへの変更を取り消す(firefish_db の部分は自分のデータベース名に変更する)

    sudo -u postgres psql --file=neko/revert.sql --dbname=firefish_db
    

    これには非常に時間が掛かります(サーバーの規模によりますが、数十分から 1 時間の時間が掛かることが予想されます)が、絶対に処理を強制終了しないでください

    出力の最後の行が COMMIT になっていれば問題ありません。そうでない場合には私にコマンドの実行ログを送ってください

  7. PGroonga をアンインストールする

    コマンドの例

    sudo apt purge --remove postgresql-16-pgdg-pgroonga
    sudo add-apt-repository --remove ppa:groonga/ppa
    sudo apt-key del ACCC4CF8
    sudo apt update
    
  8. Firefish がインストールされているディレクトリの親ディレクトリ (e.g., /home/firefish) に行く

    cd ..
    
  9. Firefish がインストールされているディレクトリ (e.g., ./firefish) の名前を変える

    mv firefish firefish.old
    
  10. Firefish がインストールされているディレクトリと同じ名前で本家版の Firefish を clone する

    git clone https://git.joinfirefish.org/firefish/firefish.git firefish
    
  11. 必要なファイルをコピーする

    rm -rf firefish/files firefish/custom firefish/.config
    cp -r firefish.old/files firefish
    cp -r firefish.old/custom firefish
    cp -r firefish.old/.config firefish
    
  12. 新しい Firefish のディレクトリ (e.g., ./firefish) に入り、develop ブランチに行く(実際には既に develop にいるはず)

    cd firefish
    git checkout develop
    
  13. Firefish をビルドする

    corepack prepare pnpm@latest --activate
    pnpm install
    NODE_ENV=production pnpm run build
    pnpm run migrate
    
  14. サーバーを起動して動作を確認する

    sudo systemctl start firefish
    
  15. 元々 Firefish がインストールされていたディレクトリを削除する

    cd ..
    rm -rf firefish.old
    

コンテナで Firefish を動かしている場合

Docker を使う場合には以下の podman, podman-compose, --podman をそれぞれ docker, docker-compose, --docker に読み替えてください。

  1. サーバーのバックアップを取る

  2. Firefish がインストールされているディレクトリ (e.g., /home/firefish/firefish) へ移動する

    cd /home/firefish/firefish
    
  3. 最新版にアップデートする

    ./update.sh --podman
    
  4. 一度サーバーを再起動し、自分のサーバーが起動したことを Web から確認したら再度停止してデータベースのコンテナのみを起動する

    podman-compose down
    podman-compose up --detach
    # 少し待って、サーバーが起動したことを確認する
    podman-compose down
    podman-compose up db --detach
    
  5. .config/docker.env に書かれているユーザー名とデータベース名を確認する(以下の例では firefish_db

    # db settings
    POSTGRES_PASSWORD=very_strong_password
    POSTGRES_USER=firefish   # これがユーザー名
    POSTGRES_DB=firefish_db  # これがデータベース名
    
  6. このフォークで加えられたデータベースへの変更を取り消す(firefish_db の部分は自分のデータベース名に変更する)

    podman-compose exec db psql --user=firefish --dbname=firefish_db --command="$(cat neko/revert.sql)"
    

    これには非常に時間が掛かります(サーバーの規模によりますが、数十分から 1 時間の時間が掛かることが予想されます)が、絶対に処理を強制終了しないでください

    出力の最後の行が ROLLBACK(またはその後に exit code: 0 と続いている)になっていれば問題ありません。そうでない場合には私にコマンドの実行ログを送ってください

  7. Firefish がインストールされているディレクトリの親ディレクトリ (e.g., /home/firefish) に行く

    cd ..
    
  8. Firefish がインストールされているディレクトリ (e.g., ./firefish) の名前を変える

    mv firefish firefish.old
    
  9. Firefish がインストールされているディレクトリと同じ名前で本家版の Firefish を clone する

    git clone https://git.joinfirefish.org/firefish/firefish.git firefish
    
  10. 必要なファイルをコピーする

    rm -rf firefish/files firefish/custom firefish/.config
    cp -r firefish.old/files firefish
    cp -r firefish.old/custom firefish
    cp -r firefish.old/.config firefish
    
  11. 新しい Firefish のディレクトリ (e.g., ./firefish) に入る

    cd firefish
    
  12. サーバーを起動して動作を確認する

    podman-compose up --detach
    

    docker-compose.yml にカスタムが必要な場合には、各自で編集してください。

  13. 元々 Firefish がインストールされていたディレクトリを削除する

    cd ..
    rm -rf firefish.old