mirror of
https://example.com
synced 2024-11-22 16:36:39 +09:00
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) \
|
--user=$(POSTGRES_USER) \
|
||||||
--dbname=$(POSTGRES_DB) \
|
--dbname=$(POSTGRES_DB) \
|
||||||
--set='ON_ERROR_STOP=1' \
|
--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 $@
|
touch $@
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -32,25 +32,17 @@
|
||||||
db: firefish_db # これ
|
db: firefish_db # これ
|
||||||
```
|
```
|
||||||
|
|
||||||
6. 次のコマンドでデータベースをいじる前に、そのコマンドが正常に動作するか確認する(`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` の部分は自分のデータベース名に変更する)
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo -u postgres psql --file=neko/revert.sql --dbname=firefish_db
|
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
|
sudo apt update
|
||||||
```
|
```
|
||||||
|
|
||||||
9. Firefish がインストールされているディレクトリの親ディレクトリ (e.g., `/home/firefish`) に行く
|
8. Firefish がインストールされているディレクトリの親ディレクトリ (e.g., `/home/firefish`) に行く
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd ..
|
cd ..
|
||||||
```
|
```
|
||||||
|
|
||||||
10. Firefish がインストールされているディレクトリ (e.g., `./firefish`) の名前を変える
|
9. Firefish がインストールされているディレクトリ (e.g., `./firefish`) の名前を変える
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
mv firefish firefish.old
|
mv firefish firefish.old
|
||||||
```
|
```
|
||||||
|
|
||||||
11. Firefish がインストールされているディレクトリと同じ名前で本家版の Firefish を clone する
|
10. Firefish がインストールされているディレクトリと同じ名前で本家版の Firefish を clone する
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://git.joinfirefish.org/firefish/firefish.git firefish
|
git clone https://git.joinfirefish.org/firefish/firefish.git firefish
|
||||||
```
|
```
|
||||||
|
|
||||||
12. 必要なファイルをコピーする
|
11. 必要なファイルをコピーする
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
rm -rf firefish/files firefish/custom firefish/.config
|
rm -rf firefish/files firefish/custom firefish/.config
|
||||||
|
@ -88,14 +80,14 @@
|
||||||
cp -r firefish.old/.config firefish
|
cp -r firefish.old/.config firefish
|
||||||
```
|
```
|
||||||
|
|
||||||
13. 新しい Firefish のディレクトリ (e.g., `./firefish`) に入り、`develop` ブランチに行く(実際には既に `develop` にいるはず)
|
12. 新しい Firefish のディレクトリ (e.g., `./firefish`) に入り、`develop` ブランチに行く(実際には既に `develop` にいるはず)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd firefish
|
cd firefish
|
||||||
git checkout develop
|
git checkout develop
|
||||||
```
|
```
|
||||||
|
|
||||||
14. Firefish をビルドする
|
13. Firefish をビルドする
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
corepack prepare pnpm@latest --activate
|
corepack prepare pnpm@latest --activate
|
||||||
|
@ -104,13 +96,13 @@
|
||||||
pnpm run migrate
|
pnpm run migrate
|
||||||
```
|
```
|
||||||
|
|
||||||
15. サーバーを起動して動作を確認する
|
14. サーバーを起動して動作を確認する
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo systemctl start firefish
|
sudo systemctl start firefish
|
||||||
```
|
```
|
||||||
|
|
||||||
16. 元々 Firefish がインストールされていたディレクトリを削除する
|
15. 元々 Firefish がインストールされていたディレクトリを削除する
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd ..
|
cd ..
|
||||||
|
@ -153,43 +145,35 @@ Docker を使う場合には以下の `podman`, `podman-compose`, `--podman` を
|
||||||
POSTGRES_DB=firefish_db # これがデータベース名
|
POSTGRES_DB=firefish_db # これがデータベース名
|
||||||
```
|
```
|
||||||
|
|
||||||
6. 次のコマンドでデータベースをいじる前に、そのコマンドが正常に動作するか確認する(`firefish` と `firefish_db` の部分は自分のユーザー名とデータベース名に変更する)
|
6. このフォークで加えられたデータベースへの変更を取り消す(`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` の部分は自分のデータベース名に変更する)
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
podman-compose exec db psql --user=firefish --dbname=firefish_db --command="$(cat neko/revert.sql)"
|
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
|
```bash
|
||||||
cd ..
|
cd ..
|
||||||
```
|
```
|
||||||
|
|
||||||
9. Firefish がインストールされているディレクトリ (e.g., `./firefish`) の名前を変える
|
8. Firefish がインストールされているディレクトリ (e.g., `./firefish`) の名前を変える
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
mv firefish firefish.old
|
mv firefish firefish.old
|
||||||
```
|
```
|
||||||
|
|
||||||
10. Firefish がインストールされているディレクトリと同じ名前で本家版の Firefish を clone する
|
9. Firefish がインストールされているディレクトリと同じ名前で本家版の Firefish を clone する
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://git.joinfirefish.org/firefish/firefish.git firefish
|
git clone https://git.joinfirefish.org/firefish/firefish.git firefish
|
||||||
```
|
```
|
||||||
|
|
||||||
11. 必要なファイルをコピーする
|
10. 必要なファイルをコピーする
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
rm -rf firefish/files firefish/custom firefish/.config
|
rm -rf firefish/files firefish/custom firefish/.config
|
||||||
|
@ -198,13 +182,13 @@ Docker を使う場合には以下の `podman`, `podman-compose`, `--podman` を
|
||||||
cp -r firefish.old/.config firefish
|
cp -r firefish.old/.config firefish
|
||||||
```
|
```
|
||||||
|
|
||||||
12. 新しい Firefish のディレクトリ (e.g., `./firefish`) に入る
|
11. 新しい Firefish のディレクトリ (e.g., `./firefish`) に入る
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd firefish
|
cd firefish
|
||||||
```
|
```
|
||||||
|
|
||||||
13. サーバーを起動して動作を確認する
|
12. サーバーを起動して動作を確認する
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
podman-compose up --detach
|
podman-compose up --detach
|
||||||
|
@ -212,7 +196,7 @@ Docker を使う場合には以下の `podman`, `podman-compose`, `--podman` を
|
||||||
|
|
||||||
`docker-compose.yml` にカスタムが必要な場合には、各自で編集してください。
|
`docker-compose.yml` にカスタムが必要な場合には、各自で編集してください。
|
||||||
|
|
||||||
14. 元々 Firefish がインストールされていたディレクトリを削除する
|
13. 元々 Firefish がインストールされていたディレクトリを削除する
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd ..
|
cd ..
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
BEGIN;
|
||||||
|
|
||||||
-- remove-nsfw-detection
|
-- remove-nsfw-detection
|
||||||
ALTER TABLE "user_profile" ADD "autoSensitive" boolean NOT NULL DEFAULT false;
|
ALTER TABLE "user_profile" ADD "autoSensitive" boolean NOT NULL DEFAULT false;
|
||||||
ALTER TABLE "meta" ADD "enableSensitiveMediaDetectionForVideos" 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
|
-- emoji-moderator
|
||||||
ALTER TABLE "user" DROP COLUMN "emojiModPerm";
|
ALTER TABLE "user" DROP COLUMN "emojiModPerm";
|
||||||
DROP TYPE "public"."user_emojimodperm_enum";
|
DROP TYPE "public"."user_emojimodperm_enum";
|
||||||
|
|
||||||
|
COMMIT;
|
||||||
|
|
Loading…
Reference in a new issue