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
变量进行配置,所以是的,除非您指定要使用哪个数据库连接,否则它将使用默认的 .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,
我安装了 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
变量进行配置,所以是的,除非您指定要使用哪个数据库连接,否则它将使用默认的 .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,