3.4 KiB
3.4 KiB
データベースマイグレーションガイド
概要
vehicle_img_right項目をoperation_log_tableに追加したことに伴うマイグレーション手順です。
追加カラム
vehicle_img_right: 後ろ向き車両画像URL(TEXT型、NULL許可)vehicle_info_url: 車両情報URL(TEXT型、NULL許可)state: 状態フラグ(DOUBLE PRECISION型、NOT NULL、デフォルト0)
unit_operation_list 追加カラム(2026-04-16)
related_id: 関連運用ID(TEXT型、NULL許可)tomorrow_id: 翌日運用ID(TEXT型、NULL許可)
既存データベースへの適用
docker exec -i jr-shikoku-backend-system-jr-shikoku-backend-db-1 psql -U postgres -d jr_shikoku_database < scripts/add_unit_operation_columns.sql
新規構築の場合
新規にデータベースを構築する場合は、通常通り以下を実行してください:
go run cmd/migrate.go
既存データベースの場合
方法1: SQLスクリプトを直接実行(推奨)
# コンテナ名を確認
docker ps
# マイグレーションを実行
docker exec -i jr-shikoku-backend-system-jr-shikoku-backend-db-1 psql -U postgres -d jr_shikoku_database < scripts/add_vehicle_img_right.sql
方法2: psqlで対話的に実行
# データベースに接続
docker exec -it jr-shikoku-backend-system-jr-shikoku-backend-db-1 psql -U postgres -d jr_shikoku_database
# 以下のコマンドを実行
ALTER TABLE operation_log_table ADD COLUMN IF NOT EXISTS vehicle_img_right TEXT;
ALTER TABLE operation_log_table ADD COLUMN IF NOT EXISTS vehicle_info_url TEXT;
ALTER TABLE operation_log_table ADD COLUMN IF NOT EXISTS state DOUBLE PRECISION NOT NULL DEFAULT 0;
# 確認
\d operation_log_table
# 終了
\q
マイグレーション確認
# テーブル構造を確認
docker exec -it jr-shikoku-backend-system-jr-shikoku-backend-db-1 psql -U postgres -d jr_shikoku_database -c "\d operation_log_table"
以下のカラムが表示されればOKです:
- id
- date
- operation_id
- train_ids
- unit_ids
- vehicle_img
- vehicle_img_right ← 新規
- vehicle_info_url ← 新規(欠落していた場合)
- state ← 新規(欠落していた場合)
バックアップ
マイグレーション前に必ずバックアップを取得してください:
./scripts/backup.sh
ロールバック
問題が発生した場合は、以下のコマンドでカラムを削除できます:
ALTER TABLE operation_log_table DROP COLUMN IF EXISTS vehicle_img_right;
ALTER TABLE operation_log_table DROP COLUMN IF EXISTS vehicle_info_url;
ALTER TABLE operation_log_table DROP COLUMN IF EXISTS state;
その後、バックアップからリストアしてください:
./scripts/restore.sh <backup_file>
影響範囲
以下のファイルが更新されました:
- cmd/migrate.go: テーブル作成時のスキーマ定義
- model/model.go: 更新処理にvehicle_img_right追加
- controller/controller.go: Discord通知にvehicle_img_right情報を追加
注意事項
- マイグレーション実行時はアプリケーションを停止してください
- 本番環境では必ず事前にバックアップを取得してください
- マイグレーション後、アプリケーションを再起動してください