# Location2025対応版移行プログラム

Location2025へのシステム拡張に伴い、移行プログラムもアップデートされました。

## 📋 更新されたプログラム

### 1. migration_location2025_support.py (新規)
Location2025完全対応版の移行プログラム。最新機能と最高レベルの互換性確認を提供。

**特徴:**
- Location2025テーブルとの整合性確認
- チェックポイント参照の妥当性検証
- 詳細な移行レポート生成
- Location2025対応マーカー付きでGPSデータ移行

### 2. migration_data_protection.py (更新)
既存の保護版移行プログラムにLocation2025サポートを追加。

**更新内容:**
- Location2025互換性確認機能追加
- 既存データ保護にLocation2025を含める
- 移行前の確認プロンプト追加

### 3. restore_core_data.py (更新)
コアデータ復元プログラムにLocation2025整合性確認を追加。

**更新内容:**
- 復元後のLocation2025整合性確認
- チェックポイント定義状況の確認
- Location2025設定ガイダンス

## 🚀 使用方法

### 推奨手順 (Location2025対応環境)

```bash
# 1. 新しいLocation2025完全対応版を使用
docker compose exec app python migration_location2025_support.py

# 2. 必要に応じてコアデータ復元 (Location2025整合性確認付き)
docker compose exec app python restore_core_data.py
```

### 従来の環境 (Location2025未対応)

```bash
# 1. 既存の保護版プログラム (Location2025確認機能付き)
docker compose exec app python migration_data_protection.py

# 2. 必要に応じてコアデータ復元
docker compose exec app python restore_core_data.py
```

## 🆕 Location2025拡張機能

### チェックポイント管理の現代化
- **CSV一括アップロード**: Django管理画面でチェックポイント定義を一括インポート
- **空間データ統合**: 緯度経度とPostGIS PointFieldの自動同期
- **イベント連携**: rog_newevent2との外部キー制約で整合性保証

### 移行プログラム拡張
- **互換性確認**: Location2025テーブルの存在と設定状況を自動確認
- **チェックポイント検証**: 移行データとLocation2025の整合性チェック
- **詳細レポート**: イベント別統計とLocation2025連携状況の詳細表示

## ⚠️ 注意事項

### Location2025未対応環境での実行
Location2025テーブルが存在しない環境でも移行は実行可能ですが、以下の制限があります：
- チェックポイント参照整合性確認がスキップされます
- 新しいCSVベース管理機能は利用できません
- Django管理画面でのチェックポイント管理機能が制限されます

### 推奨移行パス
1. Django migrationsを実行してLocation2025テーブルを作成
2. Django管理画面でサンプルチェックポイントをCSVアップロード
3. Location2025完全対応版移行プログラムを実行
4. 移行後にLocation2025整合性を確認

## 📊 移行結果の確認

### 移行データ確認
```sql
-- 移行されたGPSデータ確認
SELECT COUNT(*) FROM rog_gpscheckin 
WHERE comment LIKE 'migrated_from_gifuroge%';

-- Location2025チェックポイント確認
SELECT COUNT(*) FROM rog_location2025;

-- イベント別チェックポイント分布
SELECT e.event_code, COUNT(l.id) as checkpoint_count
FROM rog_location2025 l
JOIN rog_newevent2 e ON l.event_id = e.id
GROUP BY e.event_code;
```

### Django Admin確認
1. http://localhost:8000/admin/ にアクセス
2. Location2025セクションでチェックポイント管理画面を確認
3. CSV一括アップロード機能が利用可能かテスト

## 🔧 トラブルシューティング

### Location2025テーブルが見つからない
```bash
# Django migrationsを実行
docker compose exec app python manage.py makemigrations
docker compose exec app python manage.py migrate
```

### チェックポイントが未定義
1. Django管理画面にアクセス
2. Location2025 > "CSV一括アップロード"を選択
3. サンプルCSVファイルをアップロード

### 移行データの整合性エラー
```bash
# データベース接続確認
docker compose exec db psql -U postgres -d rogdb -c "SELECT version();"

# テーブル存在確認
docker compose exec db psql -U postgres -d rogdb -c "\dt rog_*"
```

## 📈 パフォーマンス最適化

Location2025システムは以下の最適化が適用されています：
- PostGIS空間インデックスによる高速位置検索
- イベント・チェックポイント複合インデックス
- CSV一括処理による大量データ投入の高速化

移行プログラムも同様に最適化されており、大量のGPSデータも効率的に処理できます。

---

## 📞 サポート

Location2025移行に関する技術的な問題やご質問は、システム管理者までお問い合わせください。

Location2025の導入により、ロゲイニングシステムがより使いやすく、拡張性の高いシステムへと進化しました。
