> For the complete documentation index, see [llms.txt](https://docs.iexexchanger.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.iexexchanger.com/help-center/administrirovanie/sleduyushii-id.md).

# Следующий ID

Команда `iex:set-next-id` позволяет изменить следующий ID, который будет использоваться при создании новых заявок или пользователей.

Это удобно, если после переноса базы данных, импорта данных или других операций необходимо продолжить нумерацию с определённого значения.

Команда изменяет только значение `AUTO_INCREMENT` в базе данных и не затрагивает уже существующие записи.

## Для чего нужна команда

По умолчанию база данных автоматически увеличивает ID каждой новой записи.

Иногда требуется изменить это значение вручную. Например:

* после переноса базы данных;
* после импорта старых заявок или пользователей;
* при объединении нескольких баз данных;
* чтобы новые заявки начинались с определённого номера;
* чтобы визуально разделить старые и новые записи.

Например, если последняя заявка имеет ID `58342`, можно установить следующий ID `100000`. После этого новые заявки будут получать номера начиная с `100000`.

## Что можно изменить

Команда работает со следующими сущностями:

* заявки;
* пользователи.

Для заявок используется таблица `tasks`.

Для пользователей используется таблица `users`.

## Запуск команды

{% content-ref url="/pages/cCEoFDjTDIufy3NUEakd" %}
[Подключение к серверу по SSH](/help-center/upravlenie-serverom/podklyuchenie-k-serveru-po-ssh.md)
{% endcontent-ref %}

Откройте терминал и выполните:

```bash
php artisan iex:set-next-id
```

Если команда запущена без параметров, система сообщит об ошибке, так как необходимо указать, для какой таблицы требуется изменить следующий ID.

## Изменение ID для заявок

Чтобы изменить следующий ID для новых заявок, выполните одну из команд:

```bash
php artisan iex:set-next-id orders 100000
```

После успешного выполнения новые заявки будут создаваться начиная с ID `100000`, если указанное значение безопасно для текущей базы данных.

## Изменение ID для пользователей

Чтобы изменить следующий ID пользователей, выполните:

```bash
php artisan iex:set-next-id users 50000
```

После этого новые пользователи будут создаваться начиная с ID `50000`, если это значение больше текущего максимального ID и текущего значения `AUTO_INCREMENT`.

## Изменение ID сразу для всех таблиц

Если необходимо одновременно изменить следующий ID для заявок и пользователей, выполните:

```bash
php artisan iex:set-next-id all 100000
```

Команда установит одинаковое значение для таблиц:

* `tasks`;
* `users`.

Используйте этот режим только в том случае, если обе таблицы должны продолжить нумерацию с одного значения.

## Проверка без внесения изменений

Перед изменением рекомендуется проверить результат с помощью режима `dry-run`.

Например:

```bash
php artisan iex:set-next-id orders 100000 --dry-run
```

В этом режиме команда ничего не изменяет в базе данных.

Она только показывает, что произойдёт после применения изменений.

***

## Что показывает режим Dry Run

Во время проверки отображается информация:

* таблица;
* текущий максимальный ID;
* текущее значение `AUTO_INCREMENT`;
* новый ID;
* результат проверки безопасности;
* возможность применения изменений.

Это позволяет заранее убедиться, что выбранное значение корректно.

## Применение без подтверждения

По умолчанию команда запрашивает подтверждение перед изменением базы данных.

Если требуется выполнить команду автоматически, используйте параметр:

```bash
php artisan iex:set-next-id orders 100000 --force
```

Для рабочих серверов рекомендуется сначала выполнить проверку через `--dry-run`, а затем использовать `--force`.

## Проверка безопасности

Перед изменением команда автоматически выполняет несколько проверок.

Изменение будет запрещено, если новый ID:

* меньше или равен существующему максимальному ID;
* меньше текущего значения `AUTO_INCREMENT`;
* равен `0`;
* является отрицательным числом;
* не является целым числом;
* превышает максимально допустимое значение для типа `BIGINT`.

Это предотвращает конфликты идентификаторов и ошибки при создании новых записей.

## Что выводит команда

Перед применением отображается план изменений.

Для каждой таблицы выводится информация:

* сущность;
* таблица;
* текущий `MAX(id)`;
* текущий `AUTO_INCREMENT`;
* новый ID;
* результат проверки;
* статус выполнения.

Если хотя бы одна проверка завершится ошибкой, изменение выполнено не будет.

***

## Пример использования

Предположим, необходимо, чтобы новые заявки начинались с номера `100000`.

#### Шаг 1. Проверьте изменения

```bash
php artisan iex:set-next-id orders 100000 --dry-run
```

Убедитесь, что команда не сообщает об ошибках.

#### Шаг 2. Примените изменения

```bash
php artisan iex:set-next-id orders 100000
```

#### Шаг 3. Подтвердите выполнение

После подтверждения значение `AUTO_INCREMENT` будет изменено.

Новые заявки начнут создаваться с указанного ID.

## Когда использовать

Команда может быть полезна в следующих случаях:

* после переноса базы данных;
* после восстановления резервной копии;
* после импорта заявок или пользователей;
* при объединении нескольких проектов;
* если необходимо продолжить нумерацию с определённого значения;
* если требуется визуально отделить старые записи от новых.

***

## Частые ошибки

<details>

<summary>Новый ID меньше существующего</summary>

Команда не позволит уменьшить следующий ID.

Сначала убедитесь, что выбранное значение больше текущего максимального ID и значения `AUTO_INCREMENT`.

</details>

<details>

<summary>Команда сообщает об ошибке безопасности</summary>

Это означает, что указанное значение может привести к конфликту идентификаторов.

Проверьте вывод режима `--dry-run` и выберите большее значение.

</details>

<details>

<summary>Изменился технический ID, но номер заявки остался прежним</summary>

Некоторые проекты используют отдельный публичный номер заявки.

Команда изменяет только техническое поле `id` в базе данных и не влияет на пользовательские номера заявок, если они формируются отдельным механизмом.

</details>

***

## Рекомендации

Перед изменением ID рекомендуется:

1. Создать резервную копию базы данных.
2. Выполнить проверку через `--dry-run`.
3. Убедиться, что выбранное значение больше текущего `AUTO_INCREMENT`.
4. Выполнять изменение в период минимальной нагрузки на систему.

***

## Коротко

Команда `iex:set-next-id` позволяет безопасно изменить следующий ID для новых заявок и пользователей.

Она изменяет только значение `AUTO_INCREMENT`, не затрагивая существующие записи.

Перед применением рекомендуется выполнить проверку через `--dry-run`, а на рабочих серверах предварительно создать резервную копию базы данных.


---

# 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://docs.iexexchanger.com/help-center/administrirovanie/sleduyushii-id.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.
