Pregunta

He estado golpeándome la cabeza contra SQL Server 2005 tratando de sacar muchos datos.Me dieron una base de datos con casi 300 tablas y necesito convertirla en una base de datos MySQL.Mi primera llamada fue usar bcp, pero desafortunadamente no produce un CSV válido: las cadenas no están encapsuladas, por lo que no puede manejar ninguna fila que tenga una cadena con una coma (o lo que sea que use como delimitador). y todavía tendría que escribir a mano todas las declaraciones de creación de tabla, ya que obviamente CSV no le dice nada sobre los tipos de datos.

Lo que sería mejor es si hubiera alguna herramienta que pudiera conectarse tanto a SQL Server como a MySQL y luego hacer una copia.Pierdes vistas, procedimientos almacenados, disparadores, etc., pero no es difícil copiar una tabla que solo usa tipos base de una base de datos a otra...¿Lo es?

¿Alguien conoce tal herramienta?No me importa cuántas suposiciones haga o qué simplificaciones ocurran, siempre y cuando admita números enteros, flotantes, de fecha y hora y cadenas.Tengo que hacer muchas podas, normalizaciones, etc.De todos modos, no me importa mantener claves, relaciones ni nada de eso, ¡pero necesito el conjunto inicial de datos rápidamente!

No hay solución correcta

Otros consejos

La mejor manera que he encontrado es la Kit de herramientas de migración MySQL proporcionado por MySQL.Lo he usado con éxito para algunos grandes proyectos de migración.

Las ediciones "Standard", "Developer" y "Enterprise" de SQL Server 2005 tienen SSIS, que reemplazó a DTS del servidor Sql 2000.SSIS tiene una conexión integrada a su propia base de datos y puede encontrar una conexión que otra persona haya escrito para MySQL. Aquí es un ejemplo.Una vez que tenga sus conexiones, debería poder crear un paquete SSIS que mueva datos entre los dos.

No he tenido que mover datos de SQlServer a MySQL, pero imagino que una vez instalada la conexión MySQl, funciona igual que mover datos entre dos bases de datos de SQLServer, lo cual es bastante sencillo.

Usando MSSQL Management Studio, hice la transición de tablas con MySQL OLE DB.Haga clic derecho en su base de datos y vaya a "Tareas->Exportar datos". Desde allí puede especificar una fuente OLE DB de MsSQL, la fuente OLE DB de MySQL y crear las asignaciones de columnas entre las dos fuentes de datos.

Lo más probable es que desee configurar la base de datos y las tablas de antemano en el destino MySQL (la exportación querrá crear las tablas automáticamente, pero esto a menudo resulta en un error).Puede crear rápidamente las tablas en MySQL usando "Tareas->Generar scripts" haciendo clic derecho en la base de datos.Una vez que se generen los scripts de creación, deberá avanzar paso a paso y buscar/reemplazar las palabras clave y los tipos que existen en MSSQL a MYSQL.

Por supuesto, también puede hacer una copia de seguridad de la base de datos como de costumbre y encontrar una utilidad que restaure la copia de seguridad de MSSQL en MYSQL.Sin embargo, no estoy seguro de si existe alguno.

Implementar su propia solución PHP ciertamente funcionará, aunque no estoy seguro de si existe una buena manera de duplicar automáticamente el esquema de una base de datos a otra (tal vez esta fuera su pregunta).

Si solo está copiando datos y/o necesita un código personalizado de todos modos para convertir entre esquemas modificados entre las dos bases de datos, recomendaría usar PHP 5.2+ y las bibliotecas PDO.Podrás conectarte usando PDO ODBC (y usar controladores MSSQL).Tuve muchos problemas para convertir campos de texto grandes y caracteres multibyte de MSSQL a PHP usando otras bibliotecas.

Otra herramienta para probar sería la suite SQLMaestro: http://www.sqlmaestro.com Es un poco complicado encontrar la herramienta precisa, pero tienen una variedad de herramientas, tanto gratuitas como de compra, que manejan una amplia variedad de tareas para múltiples plataformas de bases de datos.Sugeriría probar primero la herramienta Asistente de datos para MySQL, ya que creo que tendrá la herramienta de "importación" adecuada que necesita.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top