# Proceso de actualización de Sherpa Orchestrator (versión local)

### Información general sobre la actualización

La actualización de Sherpa Orchestrator incluye los siguientes componentes:

* Actualización de archivos de la aplicación
* Actualización de la estructura de la base de datos
* Actualización de dependencias de Node.js (si es necesario)
* Reinicio de servicios

### Copia de seguridad antes de la actualización

**¡Siempre haga copias de seguridad antes de actualizar!**

#### Copia de seguridad de la base de datos

```bash
# Cree un volcado de la base de datos
mysqldump -u root -p orchestrator > orchestrator_backup_$(date +%Y%m%d_%H%M%S).sql

# Cree un volcado de la base de datos de archivo (si se utiliza)
mysqldump -u root -p orchestrator_archive > orchestrator_archive_backup_$(date +%Y%m%d_%H%M%S).sql
```

#### Copia de seguridad de archivos de configuración

```bash
# Cree una copia de seguridad de la configuración
cp -r /opt/SherpaOrchestrator/backend/config /opt/SherpaOrchestrator/backend/config_backup_$(date +%Y%m%d_%H%M%S)

# Cree una copia de seguridad de los certificados SSL
cp -r /opt/SherpaOrchestrator/backend/config/certs /opt/SherpaOrchestrator/backend/config/certs_backup_$(date +%Y%m%d_%H%M%S)
```

#### Copia de seguridad de registros y datos

```bash
# Cree una copia de seguridad de los registros
cp -r /opt/SherpaOrchestrator/backend/logs /opt/SherpaOrchestrator/backend/logs_backup_$(date +%Y%m%d_%H%M%S)
```

### Descarga de archivos de actualización

```bash
# Vaya al directorio /opt y descargue el archivo como en la etapa de preparación
cd /opt

# Descargue el archivo comprimido de la actualización
orchestrator_local_update_*.tgz

```

### Detener servicios antes de la actualización

```bash
# Detenga los procesos de PM2
sudo pm2 stop all
sudo pm2 delete all

# Detenga Nginx
sudo systemctl stop nginx

# Detenga PHP-FPM
sudo systemctl stop php8.5-fpm

# Detenga MySQL/MariaDB (opcional, para una detención completa)
sudo systemctl stop mariadb
```

### Crear una copia de seguridad de la instalación actual

```bash
# Renombre el directorio actual
sudo mv /opt/SherpaOrchestrator /opt/SherpaOrchestrator_backup_$(date +%Y%m%d_%H%M%S)
```

### Descomprimir e instalar la actualización

```bash
# Cree un nuevo directorio
sudo mkdir /opt/SherpaOrchestrator

# Encuentre y descomprima el archivo de actualización (se selecciona automáticamente la versión más reciente)
tar -xvzf "$(ls orchestrator_local_update_*.tgz | sort -V | tail -n 1)"


# Vaya al directorio de la aplicación
cd /opt/SherpaOrchestrator

# Haga que los scripts sean ejecutables
sudo find ./*.sh -type f | xargs chmod +x
```

### Restaurar la configuración

```bash
# Restaure los archivos de configuración desde la copia de seguridad
sudo cp -r /opt/SherpaOrchestrator_backup_*/backend/config/* /opt/SherpaOrchestrator/backend/config/

# Restaure los certificados SSL
sudo cp -r /opt/SherpaOrchestrator_backup_*/backend/config/certs/* /opt/SherpaOrchestrator/backend/config/certs/

# Establezca los permisos correctos
sudo chown -R www-data:www-data /opt/SherpaOrchestrator
sudo chmod -R 775 /opt/SherpaOrchestrator
```

**Importante:** Después de la restauración, verifique que en `backend/config/phinx.php` se indiquen las mismas contraseñas de la base de datos que en `config.ini` (el parámetro `'pass'` en la sección `environments`). De lo contrario, las migraciones durante la actualización de la base de datos fallarán.

### Actualización de la base de datos

```bash
# Verifique la configuración de conexión en phinx.php (las contraseñas deben coincidir con config.ini)
sudo nano backend/config/phinx.php

# Ejecute las migraciones de la base de datos
sudo ./migrate.sh
```

### Actualización de dependencias de Node.js (si es necesario)

```bash
# Vaya al directorio websocket
cd /opt/SherpaOrchestrator/backend/app/websocket/

# Actualice las dependencias
sudo npm install

# Regrese al directorio principal
cd /opt/SherpaOrchestrator
```

### Iniciar servicios después de la actualización

```bash
# Inicie MySQL/MariaDB (si se detuvieron)
sudo systemctl start mariadb

# Inicie PHP-FPM
sudo systemctl start php8.5-fpm

# Inicie Nginx
sudo systemctl start nginx

# Inicie el servicio WebSocket
cd /opt/SherpaOrchestrator/backend/app/websocket/
sudo pm2 start index.js --name "Websockets"
sudo pm2 save

# Regrese al directorio principal
cd /opt/SherpaOrchestrator
```

### Verificación de funcionamiento después de la actualización

```bash
# Verifique el estado de los servicios
sudo systemctl status nginx
sudo systemctl status php8.5-fpm
sudo systemctl status mariadb

# Verifique los procesos de PM2
sudo pm2 list
sudo pm2 logs Websockets --lines 20

# Verifique la disponibilidad de la interfaz web
curl -I https://your-domain-or-ip

# Verifique los registros de Nginx en busca de errores
sudo tail -f /var/log/nginx/error.log
```

### Limpieza después de una actualización exitosa

```bash
# Después de una prueba exitosa, elimine las copias de seguridad antiguas
# (¡realice esto solo después de confirmar que todo funciona!)

# Elimine los archivos de actualización antiguos
rm -f /opt/orch_local_update_*.tgz

# Elimine las copias de seguridad antiguas (si está seguro de que todo funciona)
# rm -rf /opt/SherpaOrchestrator_backup_*
```

### Problemas posibles durante la actualización

#### Problemas con la base de datos

* Verifique la corrección de la configuración en `config.ini` y `phinx.php`
* Asegúrese de que el usuario de la base de datos tenga suficientes permisos
* Verifique los registros de migraciones

#### Problemas con el servidor web

* Verifique la sintaxis de la configuración de Nginx: `sudo nginx -t`
* Verifique los registros: `/var/log/nginx/error.log`
* Verifique las rutas al socket de PHP-FPM

#### Problemas con WebSocket

* Verifique los registros de PM2: `sudo pm2 logs Websockets`
* Verifique las dependencias de Node.js: `npm list`
* Verifique la disponibilidad de los puertos

#### Reversión en caso de actualización fallida

Si la actualización falla:

```bash
# Detenga todos los servicios
sudo pm2 stop all
sudo systemctl stop nginx php8.5-fpm

# Restaure desde la copia de seguridad
sudo rm -rf /opt/SherpaOrchestrator
sudo mv /opt/SherpaOrchestrator_backup_* /opt/SherpaOrchestrator

# Restaure los permisos
sudo chown -R www-data:www-data /opt/SherpaOrchestrator
sudo chmod -R 775 /opt/SherpaOrchestrator

# Inicie los servicios
sudo systemctl start php8.5-fpm nginx
cd /opt/SherpaOrchestrator/backend/app/websocket/
sudo pm2 start index.js --name "Websockets"
```

### Recomendaciones para la actualización

1. **Siempre haga copias de seguridad** antes de la actualización
2. **Pruebe la actualización** en un entorno de prueba, si es posible
3. **Actualícese en horas no laborables** para minimizar el tiempo de inactividad
4. **Documente el proceso** de actualización para su equipo
5. **Verifique los registros** después de la actualización en busca de errores


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.sherparpa.ru/es/sherpa-rpa/sherpa-orchestrator/ustanovka-sherpa-orchestrator/bez-ispolzvaniya-docker/process-obnovlenie-sherpa-orchestrator-lokalnaya-versiya.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
