Home > OS >  Laravel testing database migration fails due to Passport
Laravel testing database migration fails due to Passport

Time:09-29

I installed Laravel Passport and migrated the new tables just fine in my database. But when I try to run migrations for the testing database, ie. artisan migrate --database=testing I get:

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

The only table that exists in the testing database is the migrations table. It looks as if it's checking the regular database and seeing this Passport table instead of checking the testing database. Did I miss something simple here?

CodePudding user response:

php artisan ... commands will use your .env variables for configuration, so yes, unless you specified which database connection to use, it will use your default .env's DB_ variables.

You can define something like a .env.testing, then re-run as php artisan migrate --env=testing to use that file instead of your default one.

.env:

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

.env.testing:

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