【问题标题】:Laravel testing database migration fails due to PassportLaravel 测试数据库迁移因 Passport 而失败
【发布时间】:2021-11-20 19:21:17
【问题描述】:
我安装了 Laravel Passport 并在我的数据库中很好地迁移了新表。但是当我尝试为测试数据库运行迁移时,即。 artisan migrate --database=testing我明白了:
SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'oauth_auth_codes' already exists
测试数据库中唯一存在的表是migrations 表。它看起来好像是在检查常规数据库并查看此 Passport 表,而不是检查测试数据库。我在这里错过了一些简单的事情吗?
【问题讨论】:
标签:
php
laravel
laravel-passport
laravel-migrations
【解决方案1】:
php artisan ... 命令将使用您的.env 变量进行配置,所以是的,除非您指定要使用的数据库连接,否则它将使用您默认的.env 的DB_ 变量。
您可以定义类似.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,