php artisan 迁移所有表,少数除外

php artisan migrate all tables except few

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

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

迁移表的想法是进步的。

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

您不能更改它的顺序或要求某些迁移不要 运行。

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

如果您需要一点技巧,可以在 migrations 中创建一个子文件夹,然后将所有不需要的迁移移到那里,然后 运行 php artisan migrate。这将避免子文件夹和其中的所有迁移。

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

/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