> 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/ru/upravlenie-polzovatelyami-i-proektami/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/ru/upravlenie-polzovatelyami-i-proektami/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.
