migration: wrap the revert SQL queries in BEGIN; and COMMIT;
Co-authored-by: sup39 <dev@sup39.dev>
This commit is contained in:
parent
52fea1ddcf
commit
9cfe11e7a0
3 changed files with 29 additions and 41 deletions
2
Makefile
2
Makefile
|
@ -47,7 +47,7 @@ $(T)/test-revert: neko/revert.sql $(MIGRATIONS)
|
|||
--user=$(POSTGRES_USER) \
|
||||
--dbname=$(POSTGRES_DB) \
|
||||
--set='ON_ERROR_STOP=1' \
|
||||
--command="$$(printf 'BEGIN;\n%s\nROLLBACK;' "$$(cat ../neko/revert.sql)")"
|
||||
--command="$$(printf '%s\nROLLBACK;' "$$(cat ../neko/revert.sql | sed '$$ d')")"
|
||||
touch $@
|
||||
|
||||
|
||||
|
|
|
@ -32,25 +32,17 @@
|
|||
db: firefish_db # これ
|
||||
```
|
||||
|
||||
6. 次のコマンドでデータベースをいじる前に、そのコマンドが正常に動作するか確認する(`firefish_db` の部分は自分のデータベース名に変更する)
|
||||
|
||||
```bash
|
||||
printf 'BEGIN;\n%s\nROLLBACK;' "$(cat neko/revert.sql)" | sudo -u postgres psql --echo-all --set='ON_ERROR_STOP=1' --dbname=firefish_db
|
||||
```
|
||||
|
||||
これには非常に時間が掛かります(サーバーの規模によりますが、数十分から 1 時間の時間が掛かることが予想されます)。
|
||||
|
||||
出力の最後の行が `ROLLBACK` になっていれば問題ありません。そうでない場合には[私にコマンドの実行ログを送ってください](https://code.naskya.net/naskya/firefish/source-by/main/docs/trouble_shooting.md#私にコマンドの実行ログを送る)。
|
||||
|
||||
7. このフォークで加えられたデータベースへの変更を実際に取り消す(`firefish_db` の部分は自分のデータベース名に変更する)
|
||||
6. このフォークで加えられたデータベースへの変更を取り消す(`firefish_db` の部分は自分のデータベース名に変更する)
|
||||
|
||||
```bash
|
||||
sudo -u postgres psql --file=neko/revert.sql --dbname=firefish_db
|
||||
```
|
||||
|
||||
これにも非常に時間が掛かります(サーバーの規模によりますが、数十分から 1 時間の時間が掛かることが予想されます)が、**絶対に処理を強制終了しないでください**。
|
||||
これには非常に時間が掛かります(サーバーの規模によりますが、数十分から 1 時間の時間が掛かることが予想されます)が、**絶対に処理を強制終了しないでください**。
|
||||
|
||||
8. PGroonga をアンインストールする
|
||||
出力の最後の行が `COMMIT` になっていれば問題ありません。そうでない場合には[私にコマンドの実行ログを送ってください](https://code.naskya.net/naskya/firefish/source-by/main/docs/trouble_shooting.md#私にコマンドの実行ログを送る)。
|
||||
|
||||
7. PGroonga をアンインストールする
|
||||
|
||||
コマンドの例
|
||||
|
||||
|
@ -61,25 +53,25 @@
|
|||
sudo apt update
|
||||
```
|
||||
|
||||
9. Firefish がインストールされているディレクトリの親ディレクトリ (e.g., `/home/firefish`) に行く
|
||||
8. Firefish がインストールされているディレクトリの親ディレクトリ (e.g., `/home/firefish`) に行く
|
||||
|
||||
```bash
|
||||
cd ..
|
||||
```
|
||||
|
||||
10. Firefish がインストールされているディレクトリ (e.g., `./firefish`) の名前を変える
|
||||
9. Firefish がインストールされているディレクトリ (e.g., `./firefish`) の名前を変える
|
||||
|
||||
```bash
|
||||
mv firefish firefish.old
|
||||
```
|
||||
|
||||
11. Firefish がインストールされているディレクトリと同じ名前で本家版の Firefish を clone する
|
||||
10. Firefish がインストールされているディレクトリと同じ名前で本家版の Firefish を clone する
|
||||
|
||||
```bash
|
||||
git clone https://git.joinfirefish.org/firefish/firefish.git firefish
|
||||
```
|
||||
|
||||
12. 必要なファイルをコピーする
|
||||
11. 必要なファイルをコピーする
|
||||
|
||||
```bash
|
||||
rm -rf firefish/files firefish/custom firefish/.config
|
||||
|
@ -88,14 +80,14 @@
|
|||
cp -r firefish.old/.config firefish
|
||||
```
|
||||
|
||||
13. 新しい Firefish のディレクトリ (e.g., `./firefish`) に入り、`develop` ブランチに行く(実際には既に `develop` にいるはず)
|
||||
12. 新しい Firefish のディレクトリ (e.g., `./firefish`) に入り、`develop` ブランチに行く(実際には既に `develop` にいるはず)
|
||||
|
||||
```bash
|
||||
cd firefish
|
||||
git checkout develop
|
||||
```
|
||||
|
||||
14. Firefish をビルドする
|
||||
13. Firefish をビルドする
|
||||
|
||||
```bash
|
||||
corepack prepare pnpm@latest --activate
|
||||
|
@ -104,13 +96,13 @@
|
|||
pnpm run migrate
|
||||
```
|
||||
|
||||
15. サーバーを起動して動作を確認する
|
||||
14. サーバーを起動して動作を確認する
|
||||
|
||||
```bash
|
||||
sudo systemctl start firefish
|
||||
```
|
||||
|
||||
16. 元々 Firefish がインストールされていたディレクトリを削除する
|
||||
15. 元々 Firefish がインストールされていたディレクトリを削除する
|
||||
|
||||
```bash
|
||||
cd ..
|
||||
|
@ -153,43 +145,35 @@ Docker を使う場合には以下の `podman`, `podman-compose`, `--podman` を
|
|||
POSTGRES_DB=firefish_db # これがデータベース名
|
||||
```
|
||||
|
||||
6. 次のコマンドでデータベースをいじる前に、そのコマンドが正常に動作するか確認する(`firefish` と `firefish_db` の部分は自分のユーザー名とデータベース名に変更する)
|
||||
|
||||
```bash
|
||||
podman-compose exec db psql --user=firefish --dbname=firefish_db --echo-all --set='ON_ERROR_STOP=1' --command="$(printf 'BEGIN;\n%s\nROLLBACK;' "$(cat neko/revert.sql)")"
|
||||
```
|
||||
|
||||
これには非常に時間が掛かります(サーバーの規模によりますが、数十分から 1 時間の時間が掛かることが予想されます)。
|
||||
|
||||
出力の最後の行が `ROLLBACK`(またはその後に `exit code: 0` と続いている)になっていれば問題ありません。そうでない場合には[私にコマンドの実行ログを送ってください](https://code.naskya.net/naskya/firefish/source-by/main/docs/trouble_shooting.md#私にコマンドの実行ログを送る)。
|
||||
|
||||
7. このフォークで加えられたデータベースへの変更を実際に取り消す(`firefish_db` の部分は自分のデータベース名に変更する)
|
||||
6. このフォークで加えられたデータベースへの変更を取り消す(`firefish_db` の部分は自分のデータベース名に変更する)
|
||||
|
||||
```bash
|
||||
podman-compose exec db psql --user=firefish --dbname=firefish_db --command="$(cat neko/revert.sql)"
|
||||
```
|
||||
|
||||
これにも非常に時間が掛かります(サーバーの規模によりますが、数十分から 1 時間の時間が掛かることが予想されます)が、**絶対に処理を強制終了しないでください**。
|
||||
これには非常に時間が掛かります(サーバーの規模によりますが、数十分から 1 時間の時間が掛かることが予想されます)が、**絶対に処理を強制終了しないでください**。
|
||||
|
||||
8. Firefish がインストールされているディレクトリの親ディレクトリ (e.g., `/home/firefish`) に行く
|
||||
出力の最後の行が `ROLLBACK`(またはその後に `exit code: 0` と続いている)になっていれば問題ありません。そうでない場合には[私にコマンドの実行ログを送ってください](https://code.naskya.net/naskya/firefish/source-by/main/docs/trouble_shooting.md#私にコマンドの実行ログを送る)。
|
||||
|
||||
7. Firefish がインストールされているディレクトリの親ディレクトリ (e.g., `/home/firefish`) に行く
|
||||
|
||||
```bash
|
||||
cd ..
|
||||
```
|
||||
|
||||
9. Firefish がインストールされているディレクトリ (e.g., `./firefish`) の名前を変える
|
||||
8. Firefish がインストールされているディレクトリ (e.g., `./firefish`) の名前を変える
|
||||
|
||||
```bash
|
||||
mv firefish firefish.old
|
||||
```
|
||||
|
||||
10. Firefish がインストールされているディレクトリと同じ名前で本家版の Firefish を clone する
|
||||
9. Firefish がインストールされているディレクトリと同じ名前で本家版の Firefish を clone する
|
||||
|
||||
```bash
|
||||
git clone https://git.joinfirefish.org/firefish/firefish.git firefish
|
||||
```
|
||||
|
||||
11. 必要なファイルをコピーする
|
||||
10. 必要なファイルをコピーする
|
||||
|
||||
```bash
|
||||
rm -rf firefish/files firefish/custom firefish/.config
|
||||
|
@ -198,13 +182,13 @@ Docker を使う場合には以下の `podman`, `podman-compose`, `--podman` を
|
|||
cp -r firefish.old/.config firefish
|
||||
```
|
||||
|
||||
12. 新しい Firefish のディレクトリ (e.g., `./firefish`) に入る
|
||||
11. 新しい Firefish のディレクトリ (e.g., `./firefish`) に入る
|
||||
|
||||
```bash
|
||||
cd firefish
|
||||
```
|
||||
|
||||
13. サーバーを起動して動作を確認する
|
||||
12. サーバーを起動して動作を確認する
|
||||
|
||||
```bash
|
||||
podman-compose up --detach
|
||||
|
@ -212,7 +196,7 @@ Docker を使う場合には以下の `podman`, `podman-compose`, `--podman` を
|
|||
|
||||
`docker-compose.yml` にカスタムが必要な場合には、各自で編集してください。
|
||||
|
||||
14. 元々 Firefish がインストールされていたディレクトリを削除する
|
||||
13. 元々 Firefish がインストールされていたディレクトリを削除する
|
||||
|
||||
```bash
|
||||
cd ..
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
BEGIN;
|
||||
|
||||
-- remove-nsfw-detection
|
||||
ALTER TABLE "user_profile" ADD "autoSensitive" boolean NOT NULL DEFAULT false;
|
||||
ALTER TABLE "meta" ADD "enableSensitiveMediaDetectionForVideos" boolean NOT NULL DEFAULT false;
|
||||
|
@ -102,3 +104,5 @@ DROP EXTENSION pgroonga CASCADE;
|
|||
-- emoji-moderator
|
||||
ALTER TABLE "user" DROP COLUMN "emojiModPerm";
|
||||
DROP TYPE "public"."user_emojimodperm_enum";
|
||||
|
||||
COMMIT;
|
||||
|
|
Loading…
Reference in a new issue