Я использую laravel 5.2, и я обычно обновляю свою базу данных в соответствии с требованиями проекта, поэтому я бы хотел сделать это без потери записей базы данных. Я не имею в виду, как засеять мою базу данных. Я имею в виду, когда моя база данных вживую, и я хочу ее обновить, перейдя через laravel mig. Я собирался бросить Laravel Documentation, но я ничего не нашел, поэтому надеюсь найти кого-нибудь, помогите мне
Laravel 5.2 Как обновить миграцию без потери данных
Ответ 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 и не должен быть уникальным. В противном случае вы столкнетесь с ошибкой. Потому что при создании нового столбца он будет пустым (не уникальным). В этом случае вы должны откатить миграцию.