Bueno, en realidad lo puedes hacer de varias maneras.
Primero asegúrate que los contenedores estén funcionando y en marcha correctamente. Esto es un poco obvio, pero lo haces, si no lo has hecho ya, con el comando:
./vendor/bin/sail up
Luego puedes conectarte a la base de datos con el cliente de mysql/mariadb que probablemente tengas instalado en local. Lo haces con el host de la ip de localhost, ya que los puertos están mapeados al contenedor.
El comando para restaurar la base de datos sería como este:
mysql -h 127.0.0.1 -u tu_user -p tu_bbdd < backup.sql
O bien...
mariadb -h 127.0.0.1 -u tu_user -p tu_bbdd < backup.sql
- Esto supone que el archivo
backup.sql
lo tienes en esta misma carpeta, si no, tendrás que colocar la ruta al archivo. - Los datos de usuario, base de datos y clave los debes de tener en tu .env
Restaurar el respaldo mediante una sesión shell en sail
Si no tienes los comando de mariadb/mysql entonces tienes que hacer una sesión "shell" sobre el contenedor de Sail que se ha arrancado.
Esto lo haces con:
./vendor/bin/sail shell
El shell te abrirá en la carpeta donde está el proyecto Laravel. Dentro de esa carpeta deberás colocar, al menos de manera momentanea, el archivo .sql
de tu respaldo, para que puedas acceder a él desde el contenedor.
Entonces lanzas este comando para ejecutar las sentencias SQL del backup:
Desde ahí puedes lanzar el comando de antes pero personalizando el host. El host en el contenedor principal de Sail (que accedes con la sesión shell) lo define el docker-compose.yml
de la raíz de tu proyecto y será algo como "mariadb" o "mysql". También debería figurar en el .env
de tu proyecto, en los datos de conexión con la base de datos.
El comando quedaría así en este caso:
mysql -h mariadb -u tu_user -p tu_bbdd < backup.sql
Con esto el backup se tendría que ejecutar sin mayores problemas. Espero que te sirva.