Off верхней части моей головы, я вижу 2 способа, в котором вы можете сделать это.
Метод 1 является длинным и добрым досадным, если у вас есть более 50 таблиц. Метод 2 - это чистый эффективный и менее инвазивный способ достижения этого (я бы выбрал этот).
Метод 1
Следующие шаги я бы предпринять, чтобы решить ситуацию:
Экспорт таблиц базы данных и данных, так что вы есть резервное копирование всего на всякий случай, если что-то пойдет не так.
Перейти в каталог миграции и найти файл, специфичные для этой таблицы
Внутри публичной функции up():
Schema::table('table_name', function (Blueprint $table) {
$table->drop();
});
Перейти в каждую таблицу в файле миграции и закомментируйте обе следующие методы:
public function up()
и
public function down()
Откройте консоль и перейдите в каталог, где приложение Laravel живет
выполните следующую команду:
php artisan migrate
Запустив приведенную выше команду, метод drop table будет активирован, а все остальные таблицы останутся неповрежденными (при условии, что у вас нет ограничений внешнего ключа, которые препятствовали бы удалению базы данных из таблицы).
Если у вас есть какие-либо внешние ограничения, действующие в этой таблице, удалите их (так как вы все равно планируете удалить таблицу).
Метод 2
Создать папку в каталоге базы данных \ кочевок и имя что-то вроде "passive_rollback"
Просто запустите следующую команду:
php artisan migrate:rollback my_table_name_here --path=database/migrations/passive_rollback
выше шаг будет откатить одну таблицу, которая находится на пути, который вы указали. Этот метод также можно использовать для управления версиями баз данных и организации схемы по релевантности или разделам. Предоставляя вам больше контроля над тем, какие части базы данных вы хотите работать через laravel!
Я бы просто выполнил миграцию, чтобы удалить таблицу, применить миграцию, а затем удалить эту миграцию, а также исходную миграцию, чтобы создать таблицу из вашей папки миграции. Я прочитал, что вы можете безопасно напрямую удалять миграции, пока они больше не активны. Я пробовал это сам и не испытывал никаких проблем (хотя я никогда не перестраивал свою базу данных из миграций впоследствии). – user2027202827
как насчет ссылки на эту миграцию в таблице миграции? – dangel
Извините, я думаю, мой ответ был неполным. После удаления файла вы должны запустить 'php composer dump-autoload'. Возможно, стоит запустить тестовую миграцию, которую вы можете позже отбросить, чтобы убедиться, что это работает так, как ожидалось, поскольку я ни в коем случае не являюсь гуру-ларавелла. Надеюсь, это может отправить вас в правильном направлении. – user2027202827