tai-sql backup y tai-sql restore¶
tai-sql backup [-s <schema>] [-F custom|sql] [--schema-only | --data-only] [-l]
tai-sql restore [FILENAME] [-s <schema>] [--latest] [--clean] [-d]
Usan la herramienta nativa del motor (pg_dump / pg_restore en PostgreSQL), que tiene que
estar instalada en el sistema. Necesita el extra backup:
Crear un backup¶
tai-sql backup # formato del datasource, estructura y datos
tai-sql backup -F sql # texto plano legible
tai-sql backup --schema-only # solo estructura
tai-sql backup --data-only # solo datos
tai-sql backup --list # qué backups hay
| Formato | Qué es |
|---|---|
custom (por defecto) |
Binario comprimido. Más pequeño, y restore puede ser selectivo |
sql |
Texto plano. Se puede leer y editar, y restaurar con el cliente del motor |
Restaurar¶
tai-sql restore --latest # el último backup disponible
tai-sql restore mi_backup.dump # uno concreto
tai-sql restore --latest --clean # elimina los objetos existentes antes de restaurar
tai-sql restore --latest -d # qué haría, sin ejecutar
--clean elimina antes de restaurar
Si el backup está incompleto o corrupto, te quedas sin lo uno y sin lo otro. Comprueba
siempre con -d primero.
Configuración¶
Va en el datasource()
del schema:
datasource(
provider=env('MAIN_DATABASE_URL'),
backup_storage=..., # origen de tai-storage donde se guardan
backup_format='custom', # 'custom' | 'sql'
backup_retention=10, # cuántos conservar; None = sin límite
restore_provider=env('STAGING_DATABASE_URL'),
)
Por defecto los backups se guardan en .database_backups/{schema}/ del proyecto.
restore_provider es lo que permite restaurar un backup de producción contra otra base de
datos: si no se declara, el restore se ejecuta contra el mismo provider del que salió el
backup, que casi nunca es lo que quieres para probar una restauración.