En mi proyecto de WiX tengo un archivo de datos y un script SQL que crea db, crea/altera tablas inserta/actualiza filas, etc. Todos los scripts se dividen en tres partes y se ejecutan mediante el elemento SqlScript. Yo uso ContinueOnError="no"
pero si el script anterior se ejecutó con éxito, no se revierte. ¿Puedo envolver todos los scripts en la transacción y usar los bloques try/catch? ¿Existe la posibilidad de manejar el evento catch de WiZ? ¿Qué puede aconsejar para hacer ese tipo de instalador?WiX: ¿cómo se puede actualizar el db?
Respuesta
No utilizamos la extensión Wix SQL, ejecutamos acciones personalizadas para hacer el trabajo que necesitamos.
En la instalación, utilizamos acciones personalizadas para hacer una copia de seguridad de la base de datos, ejecutar los scripts de actualización correctos (según la versión de la base de datos actual) y restaurar la base de datos a la copia de seguridad como acción de reversión de la actualización.
En la desinstalación, hacemos una copia de seguridad de la base de datos, la eliminamos (condicionalmente según la entrada del usuario) y la restauramos si algo sale mal durante la desinstalación.
Wix no maneja las secuencias de comandos SQL de esa manera.
Creo que sus opciones son bastante limitadas.
Cree una copia de seguridad de la base de datos antes de la instalación y restaurela en caso de fallo de instalación. A menos que sepa con certeza que el tamaño de los datos siempre será pequeño, probablemente no sea una parte automática del instalador.
Proporcionan scripts rollback sql para secuenciar y ejecutar en caso de fallo de instalación. Esto puede ser un verdadero dolor en el culo para ser correcto dependiendo de los tipos de cambios de DB que necesite.
Offhand No conozco ningún kit de herramientas de instalador que intente automatizar las reversiones de bases de datos como parte de una instalación más grande. Hay demasiadas variables para tener en cuenta. (por ejemplo, cuánto tarda el resto de la instalación no DB y el efecto que podría tener en el tiempo de espera de conexión de la base de datos)
- 1. No se puede actualizar el paquete de instalación a gota con instalador Wix
- 2. Wix/MSI: no se puede desinstalar
- 3. No se puede registrar DLL usando WiX
- 4. no se puede actualizar el registro, atascado
- 5. No se puede actualizar la variable de entorno "PATH" con WIX
- 6. No se puede actualizar UITableView
- 7. cómo el db puede auto generar uniqueindentifiers?
- 8. No se puede actualizar RubyGems
- 9. ¿Cómo se puede actualizar dinámicamente el color de una SeekBar?
- 10. Wix no puede resolver el símbolo "Icono"
- 11. ¿Puede NHibernate comprobar si se ha generado el esquema db?
- 12. ¿Actualizar db/migrar después de actualizar manualmente los modelos?
- 13. Actualizar a php5.3 se rompe al conectar a mysql db
- 14. No se puede actualizar Android SDK
- 15. No se puede actualizar Android SDK Tools
- 16. maven m2eclipse No se puede actualizar el índice para nexus
- 17. no se puede actualizar view.layer.frame en viewDidLoad?
- 18. No se puede actualizar datagridview con bindingsource
- 19. ¿Cómo actualizar un objeto en matrices anidadas en mongo db?
- 20. ¿Cómo se puede actualizar una expresión Linq con parámetros adicionales?
- 21. Symfony2: FOS_Userbundle ¿Definición duplicada al actualizar el esquema db?
- 22. Cómo actualizar la memoria caché ObjectContext desde db?
- 23. No se puede actualizar RVM - "fatal: no se puede encontrar el helper remoto para 'http'"
- 24. Detecta cuando CodeIgniter no se puede conectar a un Db
- 25. ¿Cómo actualizar la actualización de la aplicación SQLite DB en el iPhone?
- 26. No se puede iniciar/ejecutar mongo db local
- 27. No se puede actualizar mi Bash en Mac por MacPorts
- 28. DatabaseError: no se puede abrir el archivo db, pero solo para el administrador de Django
- 29. bundle exec rake db: migrate provoca el error "no se puede encontrar el rake ejecutable"
- 30. ¿Cómo se puede copiar un conjunto de archivos en varios lugares usando Wix?
¿Qué hace cuando la base de datos es de 100 GB y no se puede hacer una copia de seguridad? –