Запустить artisan в коде Laravel без создания записей миграции в таблице migrations

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

Как заставить его ничего не записывать в таблицу "миграции"? потому что я не хочу, чтобы это было частью развертывания. Эти таблицы используются для создания нового клиента-клиента.

Artisan::call('migrate', array('--path' => 'database/templates', '--force' => true));

person ln9187    schedule 14.08.2018    source источник


Ответы (2)


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

Для этого вам просто нужно использовать построитель схем и вообще избегать использования миграций. Рассмотрим следующий пример:

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;

Schema::create('new_table_name', function (Blueprint $table) {
    $table->increments('id');
    // additional columns
    $table->timestamps();
    $table->softDeletes();
});

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

Если вы хотите удалить стол позже, вы можете запустить:

Schema::dropIfExists('new_table_name');
person Jason Grim    schedule 14.08.2018
comment
Могут ли сидеры создавать новые таблицы? - person ln9187; 14.08.2018
comment
@ ln9187 Я обновил свой ответ. Думаю, теперь я понял то, что вы пытаетесь сделать. Создайте новую таблицу для дополнительной сущности без использования миграций. - person Jason Grim; 14.08.2018

Похоже, я могу использовать опцию --pretend для сброса всех запросов без написания пакета миграции

Options:
      ...
      --pretend              Dump the SQL queries that would be run.
      ...
person ln9187    schedule 15.08.2018