迁移时未找到Laravel 5.5迁移:使用--path选项刷新

时间:2018-04-03 13:51:11

标签: php mysql laravel database-migration laravel-eloquent

使用 - 路径选项运行 migrate:refresh 时,“未找到迁移”

似乎脚本试图回滚所有迁移,而不仅仅是指定的迁移。

php artisan migrate:refresh --path=packages/package/src/database/migrations

Migration not found: 2016_06_01_000005_create_oauth_personal_access_clients_table
Migration not found: 2016_06_01_000004_create_oauth_clients_table
Migration not found: 2016_06_01_000003_create_oauth_refresh_tokens_table
Migration not found: 2016_06_01_000002_create_oauth_access_tokens_table
Migration not found: 2016_06_01_000001_create_oauth_auth_codes_table
Migration not found: 2014_10_12_100000_create_password_resets_table
Migration not found: 2014_10_12_000000_create_users_table

最终结果实际上很好。它刷新指定的文件夹迁移。

1 个答案:

答案 0 :(得分:1)

  

migrate:refresh命令将回滚所有迁移,然后执行migrate命令。此命令有效地重新创建整个数据库:

migrate:refresh将遍历迁移表中的所有迁移以将其回滚。由于您指定了路径,因此它正在查找该路径中的所有迁移。

所以基本上它会抛出错误,因为它无法在您指定的路径中找到这些迁移,但它仍然会按预期工作,因为它会回滚并重新运行它找到的迁移。

您通常不需要路径选项。通常,您要么发布程序包的迁移(将它们复制到数据库/迁移目录),要么程序包的服务提供程序将定义可以在哪里找到迁移。刷新期望回滚所有迁移,而不是特定迁移,因此虽然它可能在此示例中起作用,但它不是预期用途。