# Multi-tenancy 部署手冊 > 記錄本地開發完成後,上 Demo/Production 環境時需要手動執行的操作。 > CI/CD 會自動執行的項目已排除。 --- ## Step 1: 安裝 stancl/tenancy **CI/CD 會自動執行**:`composer install` **手動操作**:無 --- ## Step 2: 設定 Central Domain + Tenant 識別 **手動操作**: 1. 修改 `.env`,加入: ```bash # Demo 環境 (192.168.0.103) CENTRAL_DOMAINS=192.168.0.103,localhost # Production 環境 (erp.koori.tw) CENTRAL_DOMAINS=erp.koori.tw ``` --- ## Step 3: 分離 Migrations **CI/CD 會自動執行**:`php artisan migrate --force` **手動操作**:無 > 注意:migrations 結構已調整如下: > - `database/migrations/` - Central tables (tenants, domains) > - `database/migrations/tenant/` - Tenant tables (所有業務表) --- ## Step 4: 遷移現有資料到 tenant_koori **首次部署手動操作**: 1. 授予 MySQL sail 使用者 CREATE DATABASE 權限: ```bash docker exec koori-erp-mysql mysql -uroot -p[PASSWORD] -e "GRANT ALL PRIVILEGES ON *.* TO 'sail'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;" ``` 2. 建立第一個租戶 (小小冰室): ```bash docker exec -w /var/www/html koori-erp-laravel php artisan tinker --execute=" use App\Models\Tenant; Tenant::create(['id' => 'koori', 'name' => '小小冰室']); " ``` 3. 為租戶綁定域名: ```bash docker exec -w /var/www/html koori-erp-laravel php artisan tinker --execute=" use App\Models\Tenant; Tenant::find('koori')->domains()->create(['domain' => 'koori.your-domain.com']); " ``` 4. 執行資料遷移 (從 central DB 複製到 tenant DB): ```bash docker exec -w /var/www/html koori-erp-laravel php artisan tenancy:migrate-data koori ``` ## Step 5: 建立房東後台 **手動操作**:無 --- ## 其他注意事項 - 待補充...