Привет, прочтите всю включенную документацию здесь, в https://laravel.com/docs/5.4/migrations .
Есть ли способ перенести определенный файл миграции (только 1 миграция), потому что прямо сейчас каждый раз, когда есть изменение, которое я использую, php artisan migrate:refresh
и все поля сбрасываются.
laravel
migration
laravel-5.4
Мартни Ача
источник
источник
вы должны добавить путь к вашему файлу миграции, чтобы обновить только эту таблицу и запустить
источник
Просто посмотрите на
migrations
таблицу в своей базе данных, там будет список имени файла миграции и значения номера пакета.Предположим, у вас есть следующая структура,
id migration batch 1 2014_10_12_000000_create_users_table 1 2 2014_10_12_100000_create_password_resets_table 1 3 2016_09_07_103432_create_tabel_roles 1
Если вы хотите просто откатить
2016_09_07_103432_create_tabel_roles
миграцию, измените значение пакета миграции на 2, которое является самым высоким среди всех, а затем просто выполните следующее.Здесь будет произведен откат только таблицы с пакетным значением 2. Теперь внесите изменения в эту таблицу и выполните следующую консольную команду.
Стоимость партии в
migrations
таблице определяет порядок миграций. при откате сначала выполняется откат последних миграций или миграций с наибольшим пакетным значением, а затем - других. Таким образом, вы можете изменить значение в базе данных, а затем откатить конкретный файл миграции.Хотя не рекомендуется менять номер пакета каждый раз из-за взаимосвязи между структурой таблицы, мы можем использовать этот случай в некоторых случаях, когда откат одной таблицы не нарушает целостность между таблицами.
Надеюсь, вы понимаете.
источник
если вы используете вкладку для автозаполнения
php artisan migrate --path='./database/migrations/2019_12_31_115457_create_coworking_personal_memberships_table.php'
источник
Вы можете запустить такую команду
php artisan migrate --path=/database/migrations/2020_04_10_130703_create_test_table.php
источник
Вам нужно поместить файл (ы) в новый каталог (например, выбранный), а затем применить
если нужен откат:
Заметка:
это откатит, а затем перенесет все файлы миграции в каталог по умолчанию (/ database / migrations)
источник
Вы увидите вариант:
Кстати, вы, вероятно, можете указать корневую папку файла, который хотите перенести:
Или вы можете создать новую папку в миграциях, а затем перенести в нее все файлы миграции, которые вы хотите:
источник
Просто хотел опубликовать другое решение, о котором, я думаю, стоит упомянуть.
Он перенесет только ту таблицу, которая вам нужна, и больше ничего не коснется
источник
Если вы хотите создать одну конкретную таблицу. Вы можете использовать этот код. Работает для версий laravel (5.x).
источник
Можно только откатиться:
https://laravel.com/docs/5.4/migrations#rolling-back-migrations
Вы можете указать, на сколько миграций нужно откатиться, используя опцию step:
php artisan migrate:rollback --step=1
Некоторые хитрости доступны здесь:
Откатить одну конкретную миграцию в Laravel
источник
Удалите таблицу и удалите ее запись из таблицы миграции.
После этого вы снова запускаете миграцию:
источник
Исправление - убрать косую черту перед базой
источник
Перенос конкретной таблицы
источник
Или вы можете просто удалить имя файла миграции из своей базы данных в таблице «миграции», а затем запустить: php artitsan migration
источник
Вы можете попробовать использовать параметр --path =, чтобы определить конкретную подпапку, которую вы хотите выполнить, и разместить в ней определенные миграции.
В качестве альтернативы вам может потребоваться удалить ссылки и таблицы из таблиц БД и миграции, что не идеально: /
источник
Если вы хотите создать другую таблицу, просто создайте новый файл миграции. Это будет работать.
Если вы создаете миграцию
users_table
с именемid, first_name, last_name
. Вы можете создать файл миграции, напримерpublic function up() { Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('first_name',255); $table->string('last_name',255); $table->rememberToken(); $table->timestamps(); }); } public function down() { Schema::dropIfExists('users'); }
Если вы хотите добавить еще одно поле типа «status» без миграции: обновите. Вы можете создать другой файл миграции, например "add_status_filed_to_users_table"
public function up() { Schema::table('users', function($table) { $table->integer('status'); }); }
И не забудьте добавить опцию отката:
public function down() { Schema::table('users', function($table) { $table->dropColumn('status'); }); }
И когда вы запускаете миграцию с
php artitsan migration
, он просто переносит новый файл миграции.Но если вы добавите поле «status» в первый файл управления (users_table) и запустите миграцию. Перенести нечего. Вам нужно бежать
php artisan migrate:refresh
.Надеюсь на эту помощь.
источник
установить этот пакет
https://github.com/nilpahar/custom-migration/
и запустите эту команду.
источник
php artisan migrate --path = / database / migrations / fileName.php
Просто следуйте инструкциям, выполните это командное имя файла, здесь должно быть имя вашей таблицы миграции Пример: php artisan migrate --path = / database / migrations / 2020_02_21_101937_create_jobs_table.php
источник
Вы можете запустить эту команду только в своем терминале
php artisan migrate --path=database/migrations/2020_10_01_164611_create_asset_info_table.php
После миграции вы должны указать конкретное имя файла. или если у вас есть какая-либо папка внутри миграции, просто добавьте это имя папки после миграции.
Как это
php artisan migrate --path=database/migrations/yourfolder/2020_10_01_164611_create_asset_info_table.php
Я надеюсь, что это немного поможет вам. Удачного кодирования.
источник
Вы можете использовать это.
-> https://packagist.org/packages/sayeed/custom-migrate
-> https://github.com/nilpahar/custom-migration/
это очень легко использовать
источник
Для начала вам нужно выполнить следующие команды:
Шаг 1:
Шаг 2:
Ваша таблица вернется в базу данных.
источник
php artisan migration:refresh
служит то же самое.