El problema que describes parece ser una combinación de configuraciones residuales y conflictos con PostgreSQL tras una desinstalación fallida. Aquí tienes una guía paso a paso para diagnosticar y resolver este problema, asegurándote de reinstalar Odoo y PostgreSQL sin conflictos.
1. Diagnóstico Inicial
Verifica si el puerto 5432 está ocupado
El error indica que Odoo no puede conectarse a PostgreSQL en el puerto 5432. Primero, verifica si el puerto está siendo utilizado:
sudo netstat -tuln | grep 5432
-
Si hay salida: Otro servicio (o una instancia vieja de PostgreSQL) está utilizando el puerto. Identifícalo con:
sudo lsof -i:5432
Luego detén el proceso con:
sudo kill -9 <PID>
-
Si no hay salida: El puerto está libre, pero PostgreSQL podría no estar iniciándose correctamente.
Verifica el estado de PostgreSQL
Asegúrate de que PostgreSQL esté instalado y ejecutándose:
sudo systemctl status postgresql
Prueba la conexión manualmente
Usa el cliente psql para probar la conexión al servidor:
psql -h localhost -U postgres
- Si no funciona: Indica que PostgreSQL no está configurado correctamente o no está en ejecución.
- Si funciona: El problema podría estar en la configuración de Odoo.
2. Limpieza Completa de PostgreSQL y Odoo
Desinstala PostgreSQL y elimina configuraciones residuales
- Detén PostgreSQL:
sudo systemctl stop postgresql
- Elimina PostgreSQL:
sudo apt-get --purge remove postgresql*
- Borra directorios de configuración:
sudo rm -rf /etc/postgresql /var/lib/postgresql /var/log/postgresql
- Limpia los paquetes y dependencias:
sudo apt-get autoremove --purge
sudo apt-get autoclean
Reinstala PostgreSQL
- Actualiza los repositorios:
sudo apt-get update
- Reinstala PostgreSQL:
sudo apt-get install postgresql
- Verifica que PostgreSQL está en ejecución:
sudo systemctl start postgresql
sudo systemctl enable postgresql
Elimina configuraciones residuales de Odoo
- Detén cualquier servicio de Odoo:
sudo systemctl stop odoo
- Elimina Odoo completamente:
sudo apt-get --purge remove odoo
- Borra archivos y directorios de configuración:
sudo rm -rf /etc/odoo /var/lib/odoo /var/log/odoo
- Limpia los paquetes:
sudo apt-get autoremove --purge
sudo apt-get autoclean
3. Reinstalación de Odoo
Instala PostgreSQL si no lo has hecho ya
Asegúrate de que PostgreSQL esté completamente instalado y configurado antes de continuar.
Instala Odoo
Sigue las instrucciones oficiales para instalar Odoo. Por ejemplo:
- Agrega el repositorio oficial:
sudo apt-get install software-properties-common
sudo add-apt-repository universe
sudo apt-get update
- Instala Odoo:
sudo apt-get install odoo
- Verifica que Odoo esté funcionando:
sudo systemctl status odoo
Configura Odoo para usar PostgreSQL
-
Asegúrate de que odoo.conf apunte a PostgreSQL en localhost:
db_host = localhost
db_port = 5432
db_user = odoo
db_password = your_password
-
Reinicia Odoo para aplicar los cambios:
sudo systemctl restart odoo
4. Soluciones Comunes para Problemas Persistentes
Revisa la configuración de PostgreSQL
-
Asegúrate de que PostgreSQL acepte conexiones locales:
- Edita el archivo pg_hba.conf:
sudo nano /etc/postgresql/<version>/main/pg_hba.conf
Asegúrate de tener esta línea:
host all all 127.0.0.1/32 md5
- Reinicia PostgreSQL:
sudo systemctl restart postgresql
-
Asegúrate de que postgresql.conf esté configurado correctamente:
sudo nano /etc/postgresql/<version>/main/postgresql.conf
Busca la línea listen_addresses y configúrala como:
listen_addresses = 'localhost'
Luego reinicia PostgreSQL.
5. Solución Alternativa: Cambiar el Puerto de PostgreSQL
Si el puerto 5432 está ocupado y no puedes liberarlo, cambia el puerto de PostgreSQL:
- Edita postgresql.conf:
sudo nano /etc/postgresql/<version>/main/postgresql.conf
Cambia el puerto:
port = 5433
- Actualiza el archivo de configuración de Odoo (odoo.conf) para usar el nuevo puerto:
db_port = 5433
- Reinicia PostgreSQL y Odoo.
6. Verifica Logs y Monitoreo
Resumen
- Limpia completamente PostgreSQL y Odoo para eliminar configuraciones residuales.
- Reinstala PostgreSQL y verifica que esté funcionando correctamente.
- Reinstala Odoo y configúralo para usar PostgreSQL.
- Soluciona conflictos de puertos o permisos si persisten problemas.
Si necesitas más ayuda con alguno de estos pasos, ¡házmelo saber!