jueves, 1 de agosto de 2019

Cómo actualizar rápidamente laravel homestead (Windows y Mac)

Actualizar Laravel Homestead en años pasados era un dolor de cabeza. Ahora que lo he hecho miles de veces, ya le he agarrado el modo, tanto para Windows como Mac.

* Para los que usan Windows, les recomiendo ampliamente que utilicen como terminal de comandos a "cmder", para poder seguir sin problemas este tutorial y aplicar los comandos tal cual.

Cmder es una consola de linux o mac en tu Windows ¡pero más intuitiva!

Pasos preliminares a considerar

Actualizar VirtualBox y Vagrant

Si tienes versiones que ya no son actuales, considera actualizar tu VirtualBox y Vagrant. El proceso es transparente de siguiente, siguiente. En Windows debes reiniciar para que la actualización surta efecto. Si bien en Mac no se solicita reinicio, recomendaría que lo hicieras.

Primero respalda todas tus bases de datos

Antes de seguir los pasos que aquí te voy a mostrar, debes considerar respaldar tus bases de datos.




Una vez que has respaldado tus bases de datos y que ya tienes tu software actualizado (cada quién decida eso), ahora sí, continúa con los siguientes pasos.

Cómo actualizar rápidamente Laravel Homestead de manera transparente

Basándome en la documentación de Laravel, primero me coloco en el directorio Homestead (en donde reside el archivo de configuración "Homestead.yaml") e inicio la máquina virtual de Laravel Homestead en Ubuntu:

$ vagrant up
Laravel Homestead: Vagrant up
Laravel Homestead: Vagrant up
Notaremos que se nos muestra un mensaje de actualización.

Entonces ejecuta ahora

$ vagrant box update

Para que Laravel Homestead obtenga la versión más actual. Una vez que terminó (no ha actualizado nada en realidad), procede a listar las versiones que tienes con el comando:

$ vagrant box list
Laravel Homestead - cómo listar las versiones de laravel homestead con $ vagrant box list
Vagrant box list
Así podemos verificar que efectivamente ya contamos con la caja de Laravel Homestead más actual, en mi caso al día de hoy, la versión 8.0.1

Bueno, ahora sí procedemos a destruir la máquina virtual actual que tenemos

$ vagrant destroy
Laravel Homestead - $ vagrant destroy
Laravel Homestead - $ vagrant destroy

En ese momento, si tenemos activada la opción de "backup: true" debajo del listado de las bases de datos dentro de nuestro archivo de configuración Homestead.yaml, se procederá a respaldar las bases de datos.
Laravel Homestead - $ vagrant destroy
Laravel Homestead - $ vagrant destroy

Entonces se nos pedirá confirmación para destruir el laravel homestead actual por lo que tecleamos "y" y enter.

Ahora lo que hay que hacer es respaldar la carpeta Homestead, simplemente le cambio el nombre a "Homestead_", es decir, la renombro agregándole un guión bajo (para tener a la mano nuestra configuración de Homestead.yaml)

Subo un directorio

$ cd ..

Ya desde ahí ejecutamos el comando


$ vagrant box add laravel/homestead

Pero nos saldrá una especie de error confirmando que ya tenemos la versión más reciente de Laravel Homestead:

---------------------------------------------
==> box: Loading metadata for box 'laravel/homestead'
    box: URL: https://vagrantcloud.com/laravel/homestead
==> box: Adding box 'laravel/homestead' (v8.0.1) for provider: virtualbox
The box you're attempting to add already exists. Remove it before
adding it again or add it with the `--force` flag.

Name: laravel/homestead
Provider: virtualbox
Version: 8.0.1
---------------------------------------------
Ahora lo que hacemos es crear una carpeta llamada "Homestead" (evidentemente en el mismo lugar en donde teníamos la anterior y que renombramos a "Homestead_" a manera de respaldo).

$ mkdir Homestead

Nos vamos a esa carpeta:

$ cd Homestead

Y ahí insertamos los contenidos de laravel homestead desde github (nótese que al final lleva "espacio punto" para que sólo se pongan los contenidos en esa carpeta SIN que cree otra subcarpeta)


$ git clone https://github.com/laravel/homestead.git .

Aplicamos

$ git checkout release

Y para generar el Homestead.yaml

MAC:
bash init.sh

WINDOWS:
init.bat

Hasta ahí todo bien.

Ahora lo que tienes que hacer es copiar todo lo que tenías de diferente en tu archivo, /Homestead_/Homestead.yaml a la nueva carpeta /Homestead/Homestead.yaml, utilizando un editor de código que no meta caracteres de más, como VSCode o Notepad++, etc.

Una vez que copiaste los parámetros (checa que no haya espacio de tabulares sino espacios sencillos)

Ahora sí, aplica

$ vagrant up

Actualizando rápida y sencillamente Laravel Homestead
Actualizando rápida y sencillamente Laravel Homestead

Restaurar tus bases de datos con phpmyadmin, laravel seeders y mysqldump.

Hay varias maneras, una de las más sencillas es con phpmyadmin.

Referencias:


https://laravel.com/docs/5.8/homestead#installation-and-setup

No hay comentarios.:

 

Tags