2015-03-27 2 views
0

Если я использую команду PHP artisan migrate:refresh, она удаляет мои старые данные из других таблиц каждый раз.PHP artisan migrate: refresh удалить все данные из базы данных

Что я должен сделать для этого, чтобы моя миграция была успешно запущена, а мои старые данные не были удалены?

ответ

3

Это ожидаемое поведение.

Миграция обновления удалит все таблицы, а затем переустановит все миграции. Таким образом, любые данные будут потеряны.

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

+1

@Dipesh Shihora - это помогло с вашим вопросом? Вам нужно больше информации? – Laurence

+0

, но мне нужно изменить существующую таблицу? –

+0

@DipeshShihora Что значит? Чего вы пытаетесь достичь? Вы изменяете существующие таблицы с помощью миграций ('php artisan migrate'), если вам нужно что-то изменить о структуре вашей базы данных, вы просто добавляете еще одну миграцию - вот и все. Вам не нужно ничего менять вручную –

0

Да, это ожидаемое поведение этой команды. Если вы хотите запустить только perticular таблицу тогда,

Скопируйте файл миграции к временной папке «Temp» в папку кочевок, а затем запустить (пути, как и в L5):

PHP ремесленник перенастройки --path = базы данных/migrations/temp

Таким образом, он будет запускать только этот файл, не вступая в ваши текущие таблицы.

0

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

Смежные вопросы