我的函数中有这段代码,用于运行文件夹中的所有迁移文件,以便在新数据库中动态创建新表。但是,每次运行它时,它都会在表migration
中创建一条新记录,这是正常的。但是,下次我再次运行该功能时,将排除迁移文件,因为它们以前已经运行过。
如何强制它不向“迁移”表中写入任何内容?因为我不希望这成为部署的一部分。这些表用于创建新的租户客户端。
Artisan::call('migrate', array('--path' => 'database/templates', '--force' => true));
答案 0 :(得分:0)
更好地了解目标之后,听起来好像您希望在事件发生时创建其他表。
为此,您只需要使用“架构”构建器来做到这一点,而避免完全使用迁移。考虑以下示例:
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');
答案 1 :(得分:0)
看起来我可以使用选项--pretend
来转储所有查询,而无需编写迁移批处理
Options:
...
--pretend Dump the SQL queries that would be run.
...