Skip to content

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.

Notifications You must be signed in to change notification settings

luis122448/smart-shell-postgres

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo del Projecto

Despliegue Automatizado de Base de Datos PostgreSQL con Docker

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.

Descripción

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 Relacionados

Repositorio Actual

Repositorios Relacionados

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.

Configuraciones y Scripts Iniciales

  • 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 globales
    • 04 - 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.

Configuracion del Entorno

  1. Clonar el Repositorio

        git clone https://github.com/luis122448/smart-shell-postgres.git
  2. Ingresar al directorio del proyecto

        cd smart-shell-postgres
  3. Ejecutar el script de instalación

        sudo bash dev-install.sh
  4. Defina las credenciales en el archivo .env

        nano .env
        POSTGRES_USERNAME=''
        POSTGRES_PASSWORD=''
        POSTGRES_DATABASE=''
  5. Crear (si no existe) el network

        sudo docker network create smart-shell-net

Scripts

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.

Despliegue en Producción

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

  1. Ejecutar el script de despliegue

        sudo bash deploy.sh

Revisión del Despliegue

  1. 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
        └── ...
  2. 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
  3. Verificando las versiones

        psql --version
        postgres --version
  4. Ingresando con el usuario condigurado

        psql -U <usuario> --password --db smart_shell
        <password>
    
        SET search_path TO SMART_SHELL;
    
        SELECT * FROM TBL_ARTICLE;

Personalización

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.

Cadena de Conexion

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}
```

Contribuciones

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.

Licencia

Este proyecto está bajo la licencia MIT License.

About

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.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published