Files
keinasystem/document/20_ローカルテスト環境.md
Akira 4516a74772 Fix sync_db.sh to run migrate after DB restore
サーバーより新しいマイグレーションがローカルに存在する場合、
リストア後にmigrateを実行しないと500エラーになるバグを修正。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 17:32:23 +09:00

95 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ローカルテスト環境Ubuntu PC
本番同等の環境をローカルで起動し、サーバーのデータで動作確認するための手順。
---
## 構成
| ファイル | 用途 |
|---------|------|
| `docker-compose.local.yml` | 本番用Dockerfileを使用、Traefikなし、ポート直接公開 |
| `deploy_local.sh` | ローカル環境のビルド・起動 |
| `sync_db.sh` | サーバーのDBダンプをローカルに取り込む |
| `.env` | 本番と同じ環境変数git管理外 |
アクセス先:
- フロントエンド: http://localhost:3000
- バックエンドAPI: http://localhost:8000/api/
---
## 初回セットアップ
### 1. .env を作成
```bash
cp .env.production.example .env
# .env に本番と同じ値を設定する
```
### 2. ローカル環境を起動
```bash
bash deploy_local.sh
```
ビルド初回は10〜15分→ 起動 → マイグレーションが自動実行される。
### 3. サーバーのDBを同期
**サーバー側で実行**keinasystemユーザーで:
```bash
docker exec keinasystem_db pg_dump -U keinasystem keinasystem > /tmp/keinasystem_dump.sql
```
**ローカル側で実行**:
```bash
bash sync_db.sh
```
> `sync_db.sh` はリストア後に自動でマイグレーションを実行する。サーバーより新しいマイグレーションがローカルにある場合でも正しく動作する。
---
## 2回目以降の起動
```bash
# 停止中の場合は起動
docker compose -f docker-compose.local.yml up -d
# 停止
docker compose -f docker-compose.local.yml down
```
コードを変更した場合は再ビルドが必要:
```bash
bash deploy_local.sh
```
---
## DBの再同期
サーバーのデータをローカルに反映したい時。
**サーバー側**keinasystemユーザーで:
```bash
docker exec keinasystem_db pg_dump -U keinasystem keinasystem > /tmp/keinasystem_dump.sql
```
**ローカル側**:
```bash
bash sync_db.sh
```
> **注意**: ローカルのDBデータは上書きされる。ローカルで加えた変更は失われる。
---
## 注意事項
- `.env` は gitignore 対象(コミットしない)
- ローカルDBは `postgres_data_local` ボリュームに保存(本番の `postgres_data` とは別)
- `sync_db.sh` は SSH設定 `keinafarm``~/.ssh/config`)を使用