Laravel 由于 Passport,测试数据库迁移失败

Laravel testing database migration fails due to Passport

我安装了 Laravel Passport 并在我的数据库中迁移了新的 tables。但是当我尝试 运行 测试数据库的迁移时,即。 artisan migrate --database=testing 我得到:

SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'oauth_auth_codes' already exists

测试数据库中唯一存在的 table 是 migrations table。看起来它正在检查常规数据库并看到此 Passport table 而不是检查测试数据库。我是不是漏掉了一些简单的东西?

php artisan ... 命令将使用您的 .env 变量进行配置,所以是的,除非您指定要使用哪个数据库连接,否则它将使用默认的 .envDB_变量。

您可以定义类似 .env.testing 的内容,然后将 运行 重新定义为 php artisan migrate --env=testing 以使用该文件而不是默认文件。

.env:

DB_CONNECTION=mysql
DB_DATABASE=database
...
# Host, Port, Username, Password, 

.env.testing:

DB_CONNECTION=mysql
DB_DATABASE=testing
...
# Host, Port, Username, Password,