Laravel 5.2 Как обновить миграцию без потери данных

Я использую laravel 5.2, и я обычно обновляю свою базу данных в соответствии с требованиями проекта, поэтому я бы хотел сделать это без потери записей базы данных. Я не имею в виду, как засеять мою базу данных. Я имею в виду, когда моя база данных вживую, и я хочу ее обновить, перейдя через laravel mig. Я собирался бросить Laravel Documentation, но я ничего не нашел, поэтому надеюсь найти кого-нибудь, помогите мне

Ответ 1

Поскольку у вас уже есть данные в ваших таблицах, то вместо отката ваших миграций (что приведет к потере данных) вы можете создавать новые файлы миграции для обновления ваших таблиц. Предположим, у вас есть таблица users с name, email, password столбца name, email, password. Вы сохранили данные в этой таблице. Затем вы поняли, что вам также нужно добавить новый столбец с именем mobile_no в таблицу пользователей. Для этого вам нужно создать новый файл миграции. Команда будет:

php artisan make:migration add_mobile_no_columns_to_users_table --table=users

Таким образом, будет создан новый файл миграции. Укажите там данные колонки, запустите миграцию с помощью php artisan migrate и все. У вас будет этот новый столбец в вашей таблице users без потери ранее сохраненных данных.

Ответ 2

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

Ответ 3

Убедитесь, что при добавлении нового столбца в таблицу этот столбец должен иметь значение NULL и не должен быть уникальным. В противном случае вы столкнетесь с ошибкой. Потому что при создании нового столбца он будет пустым (не уникальным). В этом случае вы должны откатить миграцию.