pavel-kalmykov / mantecabox

Servicio de almacenamiento de ficheros seguro en la nube para la asignatura de Seguridad en el Diseño de Software
GNU General Public License v3.0
2 stars 1 forks source link

Configurar conexión con base de datos y preparar sistema de migraciones #2

Closed pavel-kalmykov closed 6 years ago

pavel-kalmykov commented 6 years ago

Descripción

El servicio necesitará un sistema de persistencia en donde podamos almacenar toda la información del servidor (información de los usuarios, metainformación de los archivos...). Queremos poder tener un sistema gestor de base de datos en un contenedor Docker para que lo podamos utilizar sin necesidad de tenerlo instalado y poder iniciarlo y detenerlo de forma rápida y sin complicaciones. El sistema elegido es PostgreSQL.

Por otra parte, necesitaremos un sistema de migraciones para que todos los desarrolladores puedan realizar modificaciones en la base de datos y compartirlas de forma secuencial. Estos suelen venir acompañados de ORM's, pero la funcionalidad necesaria es la de poder controlar migraciones).

Condiciones de satisfacción

  1. Deberemos de crear una página en la Wiki con la instalación de Docker y comandos básicos para la instanciación y uso del contenedor de PostreSQL (cómo instanciarla, cómo borrarla, cómo acceder a la consola, cómo conectarse a ella, etc).
  2. Deberemos crear un test interno (que no se ejecute cuando pases todos los tests) que realice una conexión exitosa con la base de datos y pueda realizar una consulta (por ejemplo, para obtener la fecha actual, que no necesita acceder a ninguna table específica).
  3. Deberemos investigar varias opciones de sistemas de migraciones que sean compatibles con PostgreSQL, seleccionar uno, configurar el entorno y crear una migración de ejemplo para comprobar su funcionamiento. Si se pudiera, también estaría bien probar el ORM y ver si merece la pena usarlo, pero no es algo necesario.

Referencias

pavel-kalmykov commented 6 years ago

Creo que la herramienta para migraciones que vamos a utilizar será la de migrate. Esta es un fork porque al parecer el autor del original abandonó el proyecto porque decía que ahora estaba muy ocupado y no tenía tiempo para mantenerlo (esta arreglado los fallos de los tests y ha añadido algunos commit de más respecto al original).

Lo usaremos en modo CLI, seguramente, aunque si tengo tiempo probaré con la librería.

pavel-kalmykov commented 6 years ago

Desarrollando en conexion-db

pavel-kalmykov commented 6 years ago

De momento no vamos a utilizar ningún ORM porque se supone que la interacción modelo-BD de momento es muy básica como para empezar a usar una herramienta del estilo.