72 lines
1.8 KiB
Markdown
72 lines
1.8 KiB
Markdown
|
|
# 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: 建立房東後台
|
|||
|
|
**手動操作**:無
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 其他注意事項
|
|||
|
|
- 待補充...
|