> For the complete documentation index, see [llms.txt](https://ayakaleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ayakaleaf-pro.ayaka.space/on-premises/uk/keruvannya-koristuvachami-ta-proyektami/user-management/username-migration.md).

# Міграція імені користувача

## Міграція імені користувача

З точки зору входу основним ідентифікатором користувача є його адреса електронної пошти. Якщо ви мігруєте з локальної автентифікації до SSO або мігруєте з одного IdP до іншого, вам може знадобитися оновити адреси електронної пошти користувачів.

Щоб допомогти з цим, надано скрипт, який мігруватиме електронні адреси користувачів за допомогою CSV-файлу з таким форматом:

`oldEmail,newEmail`

Після виконання кількох перевірок валідації скрипт пройде по CSV-файлу та оновить адреси електронної пошти користувачів з `oldEmail` до `newEmail`.

### **Валідація**

Перед запуском міграції `<csv_file>` буде перевірено, щоб переконатися, що:

* Для кожного рядка і `oldEmail` і `newEmail` є дійсними адресами електронної пошти
* Немає дублікатів, наприклад, ви не намагаєтеся оновити різних користувачів до однієї й тієї самої нової адреси електронної пошти або намагаєтеся оновити той самий обліковий запис користувача адресою електронної пошти, яка вже використовується

### **Використання** <a href="#usage" id="usage"></a>

{% code overflow="wrap" %}

```bash
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>"
```

{% endcode %}

### **Прапорці** <a href="#flags" id="flags"></a>

| Назва              | Опис                                                                                                                                                                                                                                                                                               |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--commit`         | <p>Включення <code>--commit</code> прапорця фактично виконає міграцію. Якщо його не вказано, міграція відбуватиметься в режимі пробного запуску, де зміни не вносяться, але валідація все одно виконується.<br><br><strong>За замовчуванням</strong>:<code>false</code></p>                        |
| `--continue`       | Поле `--continue` прапорець продовжить процес міграції, якщо обліковий запис користувача вже було оновлено, тобто адреса електронної пошти в обліковому записі вже змінена                                                                                                                         |
| `--ignore-missing` | Поле `--ignore-missing` прапорець продовжить процес міграції, якщо обліковий запис користувача не знайдено                                                                                                                                                                                         |
| `--admin-id`       | Поле `--admin-id` слід встановити на ID адміністратора, який виконує міграцію, і він використовуватиметься для записів журналу аудиту. Перейдіть до **Адмін** > **Керувати користувачами** та знайдіть свою адресу електронної пошти, а потім натисніть перший результат, щоб знайти свій user-id. |
| `<csv_file>`       | Поле `<csv_file>` — це файл зі старими та новими адресами електронної пошти у                                                                                                                                                                                                                      |

### **Завершення** <a href="#completion" id="completion"></a>

Під час виконання скрипта міграції, залежно від вибраних вами прапорців, буде визначатися, чи буде помилку записано в консоль і потім виконання продовжено, чи записано в консоль і завершено. Якщо скрипт завершується передчасно через помилку, він завершиться з кодом 1, щоб позначити, що він неуспішний.

Після завершення міграції скрипт виведе в консоль кількість успішних, невдалих і пропущених оновлень. Якщо міграцію успішно завершено, він завершиться з кодом 0.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://ayakaleaf-pro.ayaka.space/on-premises/uk/keruvannya-koristuvachami-ta-proyektami/user-management/username-migration.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
