es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo hacer que SqlLiteStudio exporte a un archivo SQL con las tablas en el orden correcto?

Tengo una base de datos relacional de SQLite con tablas que se acceden entre sí mediante claves externas. Cuando uso SqlLiteStudio “Exportar” para generar un nuevo archivo SQL, escribe instrucciones SQL “CREATE” e “INSERT INTO” basadas en el orden alfabético de los nombres de las tablas. Luego, cuando importo el mismo archivo SQL en una nueva base de datos (lo cual requiere el comando “Ejecutar SQL desde archivo” porque el comando de importación parece solo importar csv a una tabla), obtengo el error “no existe esa tabla” porque la línea que crea la tabla a la que hace referencia aún no se ha leído. Entonces, si edito el archivo SQL para colocar las tablas en la parte superior, obtengo el error “ERROR de CONSTRAINT de FOREIGN KEY”. Luego, si edito el archivo SQL para colocar todas las operaciones de inserción de las tablas debajo de las creaciones de tablas, y reordeno las inserciones por tabla para que ninguna tabla preceda a sus dependencias de tabla, solo entonces puedo importar con éxito el archivo SQL y reproducir el archivo de base de datos SQLite original. Parece ser un error en SqlLiteStudio. Supongo que en el peor de los casos puedo escribir un script de post-procesamiento, pero espero descubrir si hay algún método mejor que la gente esté utilizando. Simplemente prefiero guardar en formato de texto para hacer una copia de seguridad en un repositorio git existente y también facilitar la migración de la base de datos más adelante. Gracias de antemano.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, esto parece ser una limitación en la funcionalidad de exportación de SqlLiteStudio, donde no tiene en cuenta las dependencias entre tablas al generar el archivo SQL. Si bien puede ser posible escribir un script de post-procesamiento, una solución más simple es utilizar una herramienta diferente para exportar la base de datos SQLite. Por ejemplo, la herramienta de línea de comandos sqlite3 proporciona un comando .dump que genera un script SQL completo para recrear la base de datos, incluyendo las dependencias de las tablas. Este script luego se puede importar fácilmente en una nueva base de datos utilizando la herramienta de línea de comandos sqlite3 o cualquier otro cliente SQLite que pueda ejecutar scripts SQL desde un archivo. Alternativamente, también podrías considerar el uso de un cliente SQLite diferente que brinde una funcionalidad de exportación más sofisticada.

Comments are closed.