Verifica que tienes correcto el .env
de tu proyecto, en lo que respecta a los datos para la base de datos. Podría ser algo así:
DB_CONNECTION=mysql
DB_HOST=mariadb
DB_PORT=3306
DB_DATABASE=tu_ddbb
DB_USERNAME=sail
DB_PASSWORD=password
O quizás algo así:
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=tu_ddbb
DB_USERNAME=sail
DB_PASSWORD=password
Verificar DB_HOST
(En los dos anteriores ejemplo solo he cambiado el DB_HOST)
Fíjate q el .env_example
predeterminado de Laravel DB_HOST está así: DB_HOST=127.0.0.1
y eso no funciona en Sail ya que el servidor de la base de datos no es la ip de localhost. Revisa que no sea ese tu problema.
Para saber que DB_HOST
debes poner tienes que verificar el motor de base de datos que tienes en uso en el archivo docker-compose.yml
.
Puede haber un contenedor que se llame "mariadb", "mysql" u otra cosa... aparece en un código como este:
(ej si fuera mariadb)
mariadb:
image: 'mariadb:10'
ports:
Verificar que no se use root como usuario
Otro detalle que debes verificar es que el usuario no sea root. Si no me equivoco el .env_example predeterminado de laravel lo tiene el user en root, que tampoco funcionará.
Comandos Sail relevantes
Para cada vez que cambias el .env tienes que restaurar los volúmenes...
haz esto para salir de Sail y borrar el volumen:
sail down -v
Y si quieres eliminar los volúmenes de todos tus contenedores con docker se hace con este comando.
docker volume prune --force
Pero este último comando de docker podría eliminar todos los volúmenes de otros proyectos sail, cuidado con eso!!!
Luego haces el
sail up
y por último el
sail artisan migrate