almost finish migrate new circumstances

This commit is contained in:
2025-08-24 19:44:36 +09:00
parent 1ba305641e
commit fe5a044c82
67 changed files with 1194889 additions and 467 deletions

View File

@ -0,0 +1,141 @@
# 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の導入により、ロゲイニングシステムがより使いやすく、拡張性の高いシステムへと進化しました。