
Tengo un servidor SQL (MS SQL 2005) en mi entorno de desarrollo. Tengo un conjunto de pruebas unitarias para algún código .net que se conectará a la base de datos y realizará algunas operaciones. Si el código bajo prueba funciona correctamente, entonces la base de datos debería estar en el mismo estado (o similar) al que estaba antes de las pruebas.
Sin embargo, me gustaría poder revertir la base de datos a su estado anterior a la ejecución de las pruebas. Una forma de hacerlo sería utilizar transacciones mediante programación para revertir cada operación de prueba, pero esto es difícil y engorroso de programar; fácilmente podría provocar errores en el código de prueba.
Me gustaría poder ejecutar mis pruebas con confianza sabiendo que si destruyen mis tablas, puedo restaurarlas rápidamente.
¿Cuál es una buena manera de guardar una instantánea de una de mis bases de datos con sus tablas para poder restaurar fácilmente la base de datos a su estado anterior a la prueba?
Respuesta1
Respuesta2
Si tuvieras SQL Server 2008, entonces podrías tomar uninstantánea, ejecute todas sus pruebas y luego restaure la base de datos al punto de la instantánea con:
RESTORE DATABASE <database_name> FROM DATABASE_SNAPSHOT