Migrations
1. Drop bảng cũ: 2026_06_24_000001_drop_old_rbac_tables.php
Xoá các bảng RBAC tự xây dựng trước đây:
Schema::dropIfExists('employees_role');
Schema::dropIfExists('role_permissions');
Schema::dropIfExists('permission_group_permissions');
Schema::dropIfExists('roles'); // bảng roles cũ
Schema::dropIfExists('permissions'); // bảng permissions cũ
Bảng được giữ lại: permission_groups
2. Tạo bảng Spatie: 2026_06_24_000002_create_spatie_permission_tables.php
Tạo 5 bảng của Spatie, có tích hợp team feature và permission_group_id:
permissions
id, name, guard_name, permission_group_id (FK → permission_groups),
company_id (team), timestamps
UNIQUE(company_id, name, guard_name)
roles
id, name, guard_name, status, company_id (team), timestamps
UNIQUE(company_id, name, guard_name)
model_has_permissions
permission_id, model_type, model_id, company_id (team)
PRIMARY KEY(permission_id, model_id, model_type)
model_has_roles
role_id, model_type, model_id, company_id (team)
PRIMARY KEY(role_id, model_id, model_type)
role_has_permissions
permission_id, role_id, company_id (team)
PRIMARY KEY(permission_id, role_id)
Thứ tự chạy migration
1. Các migration cũ (tạo bảng cũ: roles, permissions, ...)
2. 2026_06_24_000001_drop_old_rbac_tables.php (xoá bảng cũ)
3. 2026_06_24_000002_create_spatie_permission_tables.php (tạo bảng mới)
Lưu ý
permission_group_idlà cột custom thêm vào bảngpermissionscủa Spatiestatuslà cột custom thêm vào bảngrolescủa Spatie