Manual de Actualización
Requisitos previos
- Tener acceso a su servidor, VPS, máquina virtual o local vía SSH. En las instalaciones para AWS o Google Cloud, se entrega el usuario, la IP del servidor y la clave SSH (archivo .ppk o .pem).
- Tener instalada una versión de SSH en su máquina para conectarse de manera remota. Puede utilizar PuTTY, FileZilla o una consola terminal.
- Tener los accesos y credenciales de GitLab y de los entornos creados con Docker, usuario MySQL, root, entre otros. Estos son entregados una vez realizada la instalación y pueden encontrarse en los archivos .env y docker-compose.yml.
- Conocer el nombre del proyecto. En el ejemplo se ha usado
multifacturalo
. Debe tomar en cuenta el proyecto que se le ha compartido en GitLab.
Pasos
- Acceder a su instancia vía SSH.
- Loguearse como superusuario ejecutando
sudo su
. - Ejecutar
docker ps
y verificar que estén al menos las siguientes líneas que equivalen a los contenedores de cada servicio iniciado por Docker.
En la lista deberá fijarse en los NAMES que contengan fpm y mariadb ya que en ellos deberá acceder.
- multifacturalo_fpm2_1: Equivale al nombre del proyecto donde una vez accedido se encontrará justo en la ruta donde se ha alojado el repositorio y podrá ejecutar comandos
artisan
,git
ocomposer
. Este nombre puede variar un poco, puede llamarsemultifacturalo_fpm1_1
. - multifacturalo_mariadb2_1: Es el contenedor donde podrá acceder a MySQL y utilizar comandos para ello (desde aquí no se ejecutan comandos PHP, artisan, git, entre otros).
- Una vez ubicado el contenedor a acceder, ejecute el siguiente comando:
docker exec -ti multifacturalo_fpm1_1 bash
De esta manera se conectará al contenedor y observará un cambio en el inicio de la terminal.
Caso FPM
Si ha accedido a fpm, entonces se debe encontrar en la ruta /var/www/html/
donde podrá ejecutar comandos de la siguiente lista (cada comando se ejecuta para situaciones distintas, mayormente no se necesitan ejecutar más de dos comandos en una actualización):
git pull origin master
(usar siempre)git log -5
php artisan migrate
(usar siempre)php artisan tenancy:migrate
(usar siempre)php artisan storage:link
php artisan config:cache
(usar siempre)php artisan config:clear
php artisan cache:clear
(usar siempre)composer update
composer install
composer dumpautoload
Si ha utilizado git pull origin master
, debe ingresar las credenciales de GitLab, su correo y contraseña de acceso (la contraseña no se muestra en pantalla al ingresarla).
Debe hacer uso de los comandos según sea el caso. Por ejemplo, posterior a un git pull origin master
que le muestre cambios en migraciones, deberá ejecutar php artisan migrate
y php artisan tenancy:migrate
. De esta manera actualizará los campos de las bases de datos. Básicamente, cada comando cumple una función específica y no todos son usados cada vez que se realiza una actualización.
MariaDB
Si ha accedido a mariadb, podrá hacer uso de comandos MySQL únicamente. Al acceder, deberá utilizar:
mysql -u root -p
Le solicitará la contraseña, la cual se encuentra en el archivo .env dentro del proyecto. También le fue entregada al momento de instalar el proyecto en su servidor. Si ha utilizado los canales de Slack, estos están mayormente en las chinchetas del canal.
Comandos extras
Para detener y restaurar los contenedores (servicios), diríjase a la ruta de su proyecto y ejecute los siguientes comandos:
docker-compose down
docker-compose up -d
Otra manera de detener los contenedores puede ser individualmente con los siguientes comandos:
docker stop multifacturalo_fpm2_1
docker start multifacturalo_fpm2_1
docker restart multifacturalo_fpm2_1
Si desea respaldar o montar un respaldo de una base de datos, puede ejecutar los siguientes comandos:
Backup
docker exec CONTAINER /usr/bin/mysqldump -u root --password=root DATABASE > backup.sql
Restore
cat backup.sql | docker exec -i CONTAINER /usr/bin/mysql -u root --password=root DATABASE
Donde CONTAINER
se refiere al nombre del contenedor multifacturalo_fpm2_1
.
Posibles errores
Luego de una actualización donde utilice el comando composer install
, debe darle permisos a la carpeta en vendor
del paquete de mpdf
:
chmod -R 777 vendor/mpdf/mpdf/tmp