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
dockerde 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:
- El script pedirá la configuración interactiva (usuario, host, puerto, password y/o datos de contenedor o ruta de backups).
- Listará los backups disponibles.
- Para cada backup, ejecutará
RESTORE FILELISTONLYpara detectar nombres lógicos y luego construirá y ejecutará la consultaRESTORE DATABASE ... WITH MOVE ...mediantesqlcmd. - 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
.baken la ruta que indicas. Si SQL Server corre en un contenedor, la ruta debe ser la ruta dentro del contenedor o un volumen montado. sqlcmddebe estar disponible en el PATH del entorno donde se ejecuta la aplicación. En Linux, instalamssql-toolspara obtenersqlcmd.- Si la restauración falla por nombres lógicos (error 3234), el script ejecuta
RESTORE FILELISTONLYpara obtener losLogicalNamecorrectos. Si eso falla, revisa manualmente el contenido del.bakusandosqlcmd. - 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ebcf7aebe26ba3ed1702fa369c03ded02eedfb9c38acc6373d5388537b7fd3f5
|
|
| MD5 |
a179b3967c1fabeb505ca68945637a4b
|
|
| BLAKE2b-256 |
d45cc00d58d6ed03c9ca455b9f9b776c1d6dfc0f3dd81132dc953bd414a5c8a5
|
Provenance
The following attestation bundles were made for mssql_backups-2.0.1.tar.gz:
Publisher:
python-publish.yml on xsismadn3ss/mssql-backups
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mssql_backups-2.0.1.tar.gz -
Subject digest:
ebcf7aebe26ba3ed1702fa369c03ded02eedfb9c38acc6373d5388537b7fd3f5 - Sigstore transparency entry: 1455662054
- Sigstore integration time:
-
Permalink:
xsismadn3ss/mssql-backups@ae755ce8775cd42fc2de59054c56ca890008b7ed -
Branch / Tag:
refs/tags/v2.0.1 - Owner: https://github.com/xsismadn3ss
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@ae755ce8775cd42fc2de59054c56ca890008b7ed -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
244466a9922d5db2e87236549f2e3b38278a5e131d381c10415500f4d391698f
|
|
| MD5 |
e7caa97925d6c3f13e9a590c8c1062b1
|
|
| BLAKE2b-256 |
8e314f99c281881d858dc05b2aa76a5cb2ace0988cb2c882542d49780c99e6cb
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mssql_backups-2.0.1-py3-none-any.whl -
Subject digest:
244466a9922d5db2e87236549f2e3b38278a5e131d381c10415500f4d391698f - Sigstore transparency entry: 1455662253
- Sigstore integration time:
-
Permalink:
xsismadn3ss/mssql-backups@ae755ce8775cd42fc2de59054c56ca890008b7ed -
Branch / Tag:
refs/tags/v2.0.1 - Owner: https://github.com/xsismadn3ss
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@ae755ce8775cd42fc2de59054c56ca890008b7ed -
Trigger Event:
release
-
Statement type: