> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 使用者名稱遷移

## 使用者名稱遷移

從登入的角度來看，使用者的主要識別碼是其電子郵件地址。如果您正從本機驗證遷移至 SSO，或從一個 IdP 遷移至另一個 IdP，可能需要更新使用者的電子郵件地址。

為此，我們提供了一個指令碼，可以使用以下格式的 CSV 檔案遷移使用者的電子郵件：

`oldEmail,newEmail`

在執行一些驗證檢查之後，指令碼會逐列處理 CSV 檔案，將使用者的電子郵件地址從 `oldEmail` 更新為 `newEmail`。

### **驗證**

執行遷移之前，會先檢查 `<csv_file>`，以確保：

* 每一列中的 `oldEmail` 與 `newEmail` 都是有效的電子郵件地址
* 沒有重複的項目，例如您並未嘗試將不同的使用者更新為同一個新電子郵件地址，或嘗試以已被使用的電子郵件地址更新同一個使用者帳號

### **用法**

```bash wrap theme={null}
docker cp <csv_file> sharelatex:/overleaf/services/web/<csv_file> docker exec sharelatex /bin/bash -c "cd /overleaf/services/web;node ./modules/server-ce-scripts/scripts/migrate-user-emails.js [--commit] [--continue|--ignore-missing] [--admin-id=ADMIN_USER_ID] <csv_file>"
```

### **旗標**

| 名稱 | 說明 |
| - | - |
| `--commit` | <p>加入 `--commit` 旗標才會實際執行遷移。若省略此旗標，遷移將以試執行（dry-run）模式進行，不會做任何變更，但仍會執行驗證。<br /><br /><strong>預設值</strong>：`false`</p> |
| `--continue` | 若某個使用者帳號的電子郵件地址已經更新過，`--continue` 旗標會讓遷移流程繼續進行 |
| `--ignore-missing` | 若找不到某個使用者帳號，`--ignore-missing` 旗標會讓遷移流程繼續進行 |
| `--admin-id` | `--admin-id` 應設為執行遷移之管理員的 ID，並會用於稽核日誌項目。若要找出您的使用者 ID，請前往 **Admin** > **Manage Users**，搜尋您的電子郵件地址並點選第一筆結果。 |
| `<csv_file>` | `<csv_file>` 是包含新舊電子郵件地址的檔案 |

### **完成**

執行遷移指令碼時，您所選擇的旗標將決定發生錯誤時是將錯誤記錄至主控台後繼續執行，還是記錄至主控台後結束。如果指令碼因錯誤而提前終止，會以結束代碼 1 結束，表示執行失敗。

遷移完成後，指令碼會在主控台記錄成功、失敗與略過的更新數量。如果遷移成功完成，會以結束代碼 0 結束。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.