是否有可能以迁移所有表格的方式执行php artisan migrate
,但在database\migrations
下仅保留少数迁移文件?php工匠迁移除了几个以外的所有表格
情景是,我们的业务需求需要2个DB。所以很少有迁移文件明确提到第二个数据库。当我为PHPUnit创建另一个数据库时,我不需要运行与第二个数据库关联的迁移文件。
是否有可能以迁移所有表格的方式执行php artisan migrate
,但在database\migrations
下仅保留少数迁移文件?php工匠迁移除了几个以外的所有表格
情景是,我们的业务需求需要2个DB。所以很少有迁移文件明确提到第二个数据库。当我为PHPUnit创建另一个数据库时,我不需要运行与第二个数据库关联的迁移文件。
您可以将您不希望自动运行的任何迁移置于子文件夹中。例如:
/database
/migrations
/db2
migration_3
migration_1
migration_2
现在,当你运行:
php artisan migrate
只有在database/migrations
目录迁移将运行(非递归,所以db2
目录不会被遍历),只有migration_1
意思将运行migration_2
。
要运行在db2
目录中的迁移分别可以使用--path
选项,如下所示:
php artisan migrate --path=/database/migrations/db2
迁移表的想法是渐进的。
php artisan migrate
将迁移migrations
文件夹内的所有文件。
您不能更改它的顺序或要求某些迁移不运行。
您可以根据需要创建尽可能多的迁移文件,并使用它们删除或添加列或表格。
如果您需要一点点黑客攻击,您可以在migrations
中创建一个子文件夹并将所有不需要的迁移移动到那里,然后运行php artisan migrate
。这将避免子文件夹及其中的所有迁移。
你是说你已经运行所有迁移一次之后,你会想删除一些已迁移文件?如果是这样,为什么? – Bogdan
迁移有--database选项,但我还没有尝试过如何工作。我认为你最好的选择是创建你自己的迁移命令。 –
我们可以提供--database选项来迁移泛型类。但是当文件指定明确的连接时它不起作用。 – Kannan