Este proyecto contiene un entorno completo para levantar una base de datos académica en SQL Server usando Docker. Incluye scripts de esquema, datos de ejemplo y consultas.
- docker-compose.yml: configura SQL Server y el contenedor que inicializa la base.
- sql/schema.sql: crea la base de datos y las tablas.
- sql/seed.sql: inserta datos de ejemplo.
- sql/queries.sql: contiene consultas útiles.
- diagrams/: diagramas.
- README.md: documentación del proyecto.
- La base de datos está organizada como un sistema académico, en el que estudiantes, profesores, departamentos, materias y grupos se relacionan de forma coherente para administrar inscripciones y actividades docentes.
- Los estudiantes se inscriben en grupos, los cuales pertenecen a una materia. Los profesores pueden impartir uno o varios grupos, y cada profesor pertenece a un departamento, que además tiene un director asignado (también un profesor del mismo departamento).
- El diseño permite registrar inscripciones, calificaciones, cargas docentes, estructura académica y asignación de cursos de manera flexible y normalizada.
- Docker
- Docker Compose
- Archivo .env (ver .env-example)
Nota: Dependiendo de tu versión de Docker Compose, puede que necesites usar
docker-compose(Legacy) odocker compose(Plugin moderno).
-
Ejecutar:
docker compose up --build
-
Esperar a que aparezca el mensaje:
Database schema created successfully!y varias líneas del tipo:
(X rows affected) -
El contenedor
init-dbse ejecuta una sola vez y sale. El contenedorsqlserverqueda corriendo con la base creada y poblada. -
Dar permisos en backups para que el contendor pueda escribir el backup
chmod 777 backups
- Host: localhost
- Puerto: 1433
- Usuario: sa
- Contraseña: Your_password123
- Base de datos: AcademicDB
Puedes conectarte con Azure Data Studio, DBeaver o sqlcmd.
-
Crear red para el conteneror
docker network create sqlserver_network
-
Reiniciar todo desde cero (incluyendo volúmenes):
docker compose down -v && docker compose up --build -
Ver logs en tiempo real:
docker compose logs -f
-
Entrar al cmd de SQL Server:
docker exec -it sqlserver /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P Your_password123 -
Generar backup
docker exec -it sqlserver-academic /opt/mssql-tools18/bin/sqlcmd -S localhost -U SA -P 'Your_password123' -C -Q "BACKUP DATABASE AcademicDB TO DISK='/var/opt/mssql/backups/AcademicDB.bak' WITH INIT"
-
El contenedor
init-dbejecuta los scripts en orden:schema.sqlseed.sqlqueries.sql
-
Si modificas los scripts, debes recrear los volúmenes:
docker compose down -v