# KantanPro プラグイン配布用ガイド

## 概要

KantanProプラグインは、不特定多数のWordPressサイトへの配布に適した完全自動マイグレーション機能を備えています。このガイドでは、配布時の注意点と自動マイグレーション機能について説明します。

## 自動マイグレーション機能

### 対応するシナリオ

1. **新規インストール**
   - プラグインを初めて有効化した際に自動的に完全マイグレーションが実行されます
   - すべての必要なテーブルとデータが自動的に作成されます

2. **プラグイン再有効化**
   - プラグインを無効化後に再有効化した際に自動的にマイグレーションが実行されます
   - データベースの整合性が自動的にチェック・修復されます

3. **プラグインアップデート**
   - プラグインを更新した際に自動的にマイグレーションが実行されます
   - 新しい機能やデータベース構造の変更が自動的に適用されます

4. **プラグイン読み込み時**
   - 毎回のプラグイン読み込み時に差分マイグレーションがチェックされます
   - 必要な更新があれば自動的に実行されます

### 自動マイグレーションの内容

- **基本テーブル作成**: 受注、顧客、サービス、協力会社などの基本テーブル
- **部署管理機能**: 部署テーブルと関連カラムの作成
- **利用規約管理**: 利用規約テーブルの作成と初期データ設定
- **適格請求書機能**: 適格請求書ナンバー機能のマイグレーション
- **マイグレーションファイル**: 順序付きでのマイグレーションファイル実行
- **データベース整合性チェック**: 既存データの修復と整合性確保
- **テーブル構造修正**: 最新のテーブル構造への自動更新

## 配布時の確認事項

### 1. ファイル構成の確認

配布前に以下のファイルが含まれていることを確認してください：

```
KantanPro/
├── ktpwp.php (メインファイル)
├── includes/
│   ├── migrations/ (マイグレーションファイル群)
│   ├── class-ktpwp-update-checker.php
│   ├── class-plugin-reference.php
│   └── (その他のクラスファイル)
├── js/ (JavaScriptファイル)
├── css/ (CSSファイル)
├── readme.txt
├── README.md
└── (その他のファイル)
```

### 2. マイグレーションファイルの確認

`includes/migrations/` ディレクトリに以下のファイルが含まれていることを確認：

- 20250131_add_qualified_invoice_profit_calculation.php
- 20250131_remove_tax_inclusive_setting.php
- 20250131_add_tax_rate_columns.php
- 20250131_add_tax_rate_to_service.php
- 20250131_add_tax_rate_to_invoice_items.php
- 20250715_add_tax_category_to_client.php
- 20250131_fix_null_tax_rates.php
- 20250131_update_tax_category_labels.php
- 20250703_add_missing_columns_to_supplier_table.php
- 20250703_add_missing_columns_to_order_table.php
- 20240702_sample_add_column_to_ktp_order.php
- 20240703_fix_database_structure.php
- 20250130_add_qualified_invoice_number_to_supplier.php
- 20250703_sync_production_to_local_structure.php
- 20250703_ultra_strict_cleanup_unused_columns.php
- 20250127_create_donation_table.php
- 20250703_strict_cleanup_unused_columns.php
- 20250101_create_department_table.php
- 20250703_cleanup_unused_columns.php

### 3. バージョン番号の確認

`ktpwp.php` ファイル内の `KANTANPRO_PLUGIN_VERSION` 定数が正しく設定されていることを確認してください。

### 4. テストの実行

配布前に以下のテストを実行してください：

1. **新規インストールテスト**
   - クリーンなWordPress環境でプラグインをインストール
   - 有効化時に自動マイグレーションが正常に動作することを確認

2. **再有効化テスト**
   - プラグインを無効化後に再有効化
   - 再有効化時に自動マイグレーションが正常に動作することを確認

3. **アップデートテスト**
   - 古いバージョンから新しいバージョンへのアップデート
   - アップデート時に自動マイグレーションが正常に動作することを確認

## テストツール

配布前に以下のテストツールを使用して自動マイグレーション機能をテストしてください：

### 1. 自動マイグレーション機能テスト
```
https://your-site.com/wp-content/plugins/KantanPro/test_auto_migration_complete.php
```

このツールでは以下がテストできます：
- 現在のマイグレーション状態の確認
- 手動での完全マイグレーション実行
- 新規インストール・再有効化・アップデートのシミュレーション
- データベーステーブル状態の確認

### 2. WordPress.org接続診断
```
https://your-site.com/wp-content/plugins/KantanPro/debug-update-connection.php
```

このツールでは以下が確認できます：
- WordPress.orgとの接続状況
- KantanPro更新チェッカーの状態
- システム情報の確認

## 配布時の注意点

### 1. セキュリティ
- テスト用のファイル（`test_*.php`、`debug-*.php`）は配布前に削除することを推奨
- 本番環境では不要なデバッグファイルが含まれていないことを確認

### 2. パフォーマンス
- 自動マイグレーションは適切なタイミングで実行されるよう設計されています
- 不要な重複実行を避けるため、transientを使用した制御が実装されています

### 3. エラーハンドリング
- マイグレーション中にエラーが発生した場合でも、基本的な設定は保存されます
- エラーが発生した場合は、ログに詳細が記録されます

### 4. ユーザー通知
- マイグレーションの成功・失敗は適切にユーザーに通知されます
- 管理画面で通知メッセージが表示されます

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

### よくある問題と解決策

1. **マイグレーションが実行されない**
   - プラグインを再有効化してください
   - データベースの権限を確認してください

2. **エラーが発生する**
   - WordPressのデバッグログを確認してください
   - データベースの接続設定を確認してください

3. **テーブルが作成されない**
   - データベースの権限を確認してください
   - プラグインを再有効化してください

## サポート

配布に関する質問や問題がございましたら、以下の方法でサポートを受けることができます：

1. **ログの確認**: WordPressのデバッグログを確認
2. **テストツールの使用**: 上記のテストツールを使用して問題を特定
3. **プラグインの再有効化**: 問題が解決しない場合はプラグインを再有効化

---

**注意**: このガイドは配布時の参考資料です。実際の配布前に十分なテストを実行してください。 