Este repositorio contiene un conjunto de configuraciones y scrips SQL para desplegar una base de datos PostgreSQL con toda la información (por defecto) para el proyecto de Smart-Shell ( Facturador Electronico ) y Platform-Training ( Plataforma de Capacitacion ) utilizando Docker y Docker Compose. Asimismo se ha configurado la generación de logs y backups de la base de datos.
El objetivo principal de este proyecto es proporcionar un entorno preconfigurado de PostgreSQL utilizando Docker, permitiendo la automatización del despliegue y la inicialización de la base de datos con scripts SQL predefinidos asimismo la automatizacion en la generación y exportación de logs y backups.
Repositorios referidos al BACKEND y FRONTEND de la aplicacion Smart-Shell y Platform-Training.
Repositorios relacionado a la automatizacion de despliegue.
Repositorios relacionados a otras bases de datos del proyecto Smart-Shell.
- docker-compose.yml: Archivo de configuración Docker Compose para crear y ejecutar el contenedor de PostgreSQL.
- init-scripts/: Carpeta que contiene los scripts SQL de inicialización de la base de datos.
00 - POSTGEESQL.sql
: Script para la configuración de archivos de log, backups y parametros globales de la base de datos.01 - MEMORY.sql
: Script para la configuración de la memoria y parametros de rendimiento.02 - SCHEMA AND ROL.sql
: Script para la configuración de SCHEMAS y ROLES.03 - UTILS.sql
: Script para creacion de tablas y procedimientos globales04 - ARTICLE.sql
: Script para la creacion e inserción de articulos y tablas anexas.05 - BUSINESS_PARTNER.sql
: Script para la creacion e inserción de socios de negocio y tablas anexas.06 - DOCUMENT_P0.sql
: Script para la creacion de las tablas de cabezera y detalle para los documentos.07 - DOCUMENT_P1.sql
: Script para la creacion e inserción de las tablas secundarias asociadas a los documentos.08 - DOCUMENT_P2.sql
: Script para las funciones y procedimientos almacenados necesarios para las insercion, consulta e impresion de los documentos.09 - DOCUMENT_P2.sql
: Configuraciones adicionales, para el proyecto (no vinculado) de platform-training.
- configurations: Archivo con scrips en bash, para configurar y automatizar la generacion de logs y backups de PostgreSQL.
-
Clonar el Repositorio
git clone https://github.com/luis122448/smart-shell-postgres.git
-
Ingresar al directorio del proyecto
cd smart-shell-postgres
-
Ejecutar el script de instalación
sudo bash dev-install.sh
-
Defina las credenciales en el archivo .env
nano .env
POSTGRES_USERNAME='' POSTGRES_PASSWORD='' POSTGRES_DATABASE=''
-
Crear (si no existe) el network
sudo docker network create smart-shell-net
El directorio init-scripts
contiene los scripts que se ejecutarán al iniciar el contenedor, para crear la base de datos, los esquemas, las tablas y los datos iniciales.
Adicinalmente el dictorio scripts
contiene scripts auxiliares y utilitarios.
Para el despliegue en producción se ha utilizado Docker y Docker Compose, puede revisar el archivo docker-compose.yml para conocer los detalles de la configuración. Asimismo no se olvide de modificar las variables de entono, en asi archivo .env
-
Ejecutar el script de despliegue
sudo bash deploy.sh
-
Verificar logs y backups Verificar los registros y respaldos generados durante el arranque del contenedor dentro del directorio de tu proyecto:
smart-shell-postgres/ ├── logs/ │ ├── init-2023-12-02.log │ └── log-2023-12-02.log ├── backups/ │ └── backup-20231202_134657.sql └── ...
-
Conexion a la Base de Datos
sudo docker run -it --network smart-shell-net --rm postgres:latest psql -h smart-shell-postgres -U $USER -d smart_shell
-
Verificando las versiones
psql --version postgres --version
-
Ingresando con el usuario condigurado
psql -U <usuario> --password --db smart_shell <password> SET search_path TO SMART_SHELL; SELECT * FROM TBL_ARTICLE;
Puedes personalizar este entorno modificando los scripts SQL en init-scripts/ según las necesidades específicas de tu base de datos. Recuerda mantener el orden numérico en los nombres de los scripts si necesitas un orden específico de ejecución.
Configuracion para un proyecto de JAVA con SPRING BOOT (application.properties).
```bash
# Postgres configuration
spring.datasource.postgresql.url=jdbc:postgresql://${POSTGRES_HOST}/${POSTGRES_DATABASE}
spring.datasource.postgresql.username=${POSTGRES_USERNAME}
spring.datasource.postgresql.password=${POSTGRES_PASSWORD}
```
Las contribuciones son bienvenidas. Siéntete libre de mejorar este proyecto, agregar nuevas características o corregir problemas identificados. Para contribuir, crea un Pull Request o abre un Issue.
Este proyecto está bajo la licencia MIT License.