Skip to main content

Aplicación de consola para restuarar base de datos en SQL Server indicando una carpeta con un listado de archivos de backup

Project description

MSSQL Backups

Herramienta para automatizar la restauración de backups (.bak) en SQL Server.

Este proyecto proporciona utilidades para listar backups, construir la consulta de RESTORE y ejecutar sqlcmd para restaurar bases de datos. Está pensado para usarse desde la terminal y usa interacción para pedir la configuración de la base de datos y/o del contenedor.

Instalación

  • Instala uv en tu entorno local usando
winget install --id=astral-sh.uv -e
  • Instala mssql-backups como herramienta con uv
uv tool install mssql-backups

Ejecutar herramienta

uv tool run mssql-backups

Configuración guardada

La configuración de conexiones y backups se guarda en SQLite en ~/.mssql-bakups/config.db.

mssql-backups config bak ls
mssql-backups config bak add
mssql-backups config bak rm --name mi-backup

mssql-backups config conn ls
mssql-backups config conn add
mssql-backups config conn rm --name mi-conexion

Si no pasas alguno de los parámetros en add o add, el comando te los preguntará uno por uno de forma interactiva.

Restauración guardada

La restauración usa la conexión y la configuración de backup guardadas en SQLite.

mssql-backups restore files mi-backup
mssql-backups restore begin --conn mi-conexion --bak mi-backup

Si no pasas conn o bak en begin, el comando te los pedirá en tiempo de ejecución.

Requisitos

  • Python 3.12
  • sqlcmd (herramienta de cliente de SQL Server / mssql-tools) disponible en la máquina donde se ejecuta el script o en el contenedor de SQL Server.
  • Si usas backups ubicados dentro de contenedores Docker, necesitas acceso al daemon de Docker y el paquete docker de Python.

Preparar entorno virtual (usando uv)

Este proyecto utiliza uv para crear el entorno virtual y gestionar dependencias. Se recomienda Python 3.12.

Instala uv en tu entorno local usando

winget install --id=astral-sh.uv -e

Desde el directorio raíz del proyecto (restore_all):

uv venv .venv

uv imprimirá en la terminal la instrucción que debes ejecutar para activar el entorno virtual según la consola que estés usando (cmd, PowerShell, bash, etc.). Sigue esa indicación para activar .venv.

Si no usas uv, puedes crear el venv con:

python3.12 -m venv .venv
# luego activa según tu shell, ejemplo en bash:
source .venv/bin/activate

Instalar dependencias (usando uv)

Para sincronizar e instalar las dependencias del proyecto con uv, usa:

uv sync

Ejecución en modo desarrollo

Una vez activado el entorno virtual, ejecuta la aplicación desde el directorio raíz del proyecto:

uv run main.py

El flujo típico es:

  1. El script pedirá la configuración interactiva (usuario, host, puerto, password y/o datos de contenedor o ruta de backups).
  2. Listará los backups disponibles.
  3. Para cada backup, ejecutará RESTORE FILELISTONLY para detectar nombres lógicos y luego construirá y ejecutará la consulta RESTORE DATABASE ... WITH MOVE ... mediante sqlcmd.
  4. Mostrará el resultado de cada restauración en la consola.

Recomendaciones y consideraciones

  • Asegúrate de que SQL Server (o el contenedor donde corre) tenga acceso al archivo .bak en la ruta que indicas. Si SQL Server corre en un contenedor, la ruta debe ser la ruta dentro del contenedor o un volumen montado.
  • sqlcmd debe estar disponible en el PATH del entorno donde se ejecuta la aplicación. En Linux, instala mssql-tools para obtener sqlcmd.
  • Si la restauración falla por nombres lógicos (error 3234), el script ejecuta RESTORE FILELISTONLY para obtener los LogicalName correctos. Si eso falla, revisa manualmente el contenido del .bak usando sqlcmd.
  • Evita exponer contraseñas en variables de entorno o procesos visibles. Usa mecanismos seguros (archivos con permisos restringidos, vaults, autenticación integrada) cuando sea posible.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mssql_backups-2.0.1.tar.gz (12.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mssql_backups-2.0.1-py3-none-any.whl (17.3 kB view details)

Uploaded Python 3

File details

Details for the file mssql_backups-2.0.1.tar.gz.

File metadata

  • Download URL: mssql_backups-2.0.1.tar.gz
  • Upload date:
  • Size: 12.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mssql_backups-2.0.1.tar.gz
Algorithm Hash digest
SHA256 ebcf7aebe26ba3ed1702fa369c03ded02eedfb9c38acc6373d5388537b7fd3f5
MD5 a179b3967c1fabeb505ca68945637a4b
BLAKE2b-256 d45cc00d58d6ed03c9ca455b9f9b776c1d6dfc0f3dd81132dc953bd414a5c8a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for mssql_backups-2.0.1.tar.gz:

Publisher: python-publish.yml on xsismadn3ss/mssql-backups

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mssql_backups-2.0.1-py3-none-any.whl.

File metadata

  • Download URL: mssql_backups-2.0.1-py3-none-any.whl
  • Upload date:
  • Size: 17.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mssql_backups-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 244466a9922d5db2e87236549f2e3b38278a5e131d381c10415500f4d391698f
MD5 e7caa97925d6c3f13e9a590c8c1062b1
BLAKE2b-256 8e314f99c281881d858dc05b2aa76a5cb2ace0988cb2c882542d49780c99e6cb

See more details on using hashes here.

Provenance

The following attestation bundles were made for mssql_backups-2.0.1-py3-none-any.whl:

Publisher: python-publish.yml on xsismadn3ss/mssql-backups

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page