当运行migrate:refresh with--path选项时,我得到“未找到迁移”。
似乎脚本试图回滚所有迁移,而不仅仅是指定的迁移。
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

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

最佳答案

migrate:refresh命令将回滚所有迁移,然后执行migrate命令。此命令有效地重新创建整个数据库:
迁移:刷新将循环遍历迁移表中的所有迁移以回滚它们。因为您指定了一个路径,所以它将查找该路径中的所有迁移。
所以本质上,它抛出错误是因为在指定的路径中找不到这些迁移,但它仍将按预期工作,因为它正在回滚并重新运行找到的迁移。
通常不需要路径选项。通常,您要么发布包的迁移(将它们复制到数据库/迁移目录),要么包的服务提供商将定义迁移的位置。Refresh希望回滚所有迁移,而不是特定的迁移,因此尽管它在本例中可能起作用,但它并不是预期的用途。

关于php - Laravel 5.5 Migration-在带有--path选项的migration:refresh上找不到,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49631844/

10-14 10:17