php artisan迁移除少数之外的所有表

时间:2016-02-16 18:18:59

标签: laravel artisan artisan-migrate

是否可以以迁移所有表格的方式执行php artisan migrate,但只在database\migrations下留下一些迁移文件?

方案是,我们的业务需求需要2个DB。因此,很少有迁移文件明确提到第二个数据库。当我为PHPUnit创建另一个数据库时,我不需要运行与第二个数据库关联的迁移文件。

2 个答案:

答案 0 :(得分:8)

您可以将任何不希望自动运行的迁移放在子文件夹中。例如:

/database
  /migrations
    /db2
      migration_3
    migration_1
    migration_2

现在当你跑:

php artisan migrate

仅运行database/migrations目录中的迁移(非递归,因此不会遍历db2目录),这意味着只有migration_1migration_2将跑了。

要分别在db2目录中运行迁移,您可以使用--path选项,如下所示:

php artisan migrate --path=/database/migrations/db2

答案 1 :(得分:2)

迁移表的想法是渐进的。

php artisan migrate将迁移migrations文件夹中的所有文件。

您无法更改订单或要求某些迁移不能运行。

您可以根据需要创建任意数量的迁移文件,并使用它们删除或添加列或表。

如果您需要一点点黑客攻击,可以在migrations内创建一个子文件夹,并在那里移动所有不需要的迁移,然后运行php artisan migrate。这将避免子文件夹及其中的所有迁移。