Pergunta

Eu estive batendo minha cabeça contra SQL Server 2005 tentando extrair muitos dados.Recebi um banco de dados com quase 300 tabelas e preciso transformá-lo em um banco de dados MySQL.Minha primeira chamada foi usar bcp, mas infelizmente ele não produz CSV válido - as strings não são encapsuladas, então você não pode lidar com nenhuma linha que contenha uma string com uma vírgula (ou o que quer que você use como delimitador) e eu ainda teria que escrever à mão todas as instruções de criação da tabela, pois obviamente o CSV não diz nada sobre os tipos de dados.

O que seria melhor é se houvesse alguma ferramenta que pudesse se conectar ao SQL Server e ao MySQL e então fazer uma cópia.Você perde visualizações, procedimentos armazenados, gatilhos, etc, mas não é difícil copiar uma tabela que usa apenas tipos base de um banco de dados para outro...é isso?

Alguém conhece tal ferramenta?Não me importo com quantas suposições ele faz ou com que simplificações ocorrem, desde que suporte número inteiro, flutuante, data e hora e string.Tenho que fazer muita poda, normalização, etc.de qualquer forma, não me importo em manter chaves, relacionamentos ou algo assim, mas preciso do conjunto inicial de dados rapidamente!

Nenhuma solução correta

Outras dicas

A melhor maneira que encontrei é a Kit de ferramentas de migração MySQL fornecido pelo MySQL.Eu o usei com sucesso em alguns grandes projetos de migração.

As edições "Standard", "Developer" e "Enterprise" do SQL Server 2005 possuem SSIS, que substituiu o DTS do SQL Server 2000.O SSIS possui uma conexão integrada com seu próprio banco de dados, e você pode encontrar uma conexão que outra pessoa escreveu para o MySQL. Aqui é um exemplo.Depois de ter suas conexões, você poderá criar um pacote SSIS que mova dados entre os dois.

Não tive que mover dados do SQlServer para o MySQL, mas imagino que, uma vez instalada a conexão MySQl, ela funcione da mesma forma que mover dados entre dois bancos de dados SQLServer, o que é bastante simples.

Usando o MSSQL Management Studio, fiz a transição de tabelas com o MySQL OLE DB.Clique com o botão direito em seu banco de dados e vá para "Tarefas-> Exportar Dados" a partir daí você pode especificar uma fonte MsSQL OLE DB, a fonte MySQL OLE DB e criar os mapeamentos de colunas entre as duas fontes de dados.

Você provavelmente desejará configurar o banco de dados e as tabelas antecipadamente no destino MySQL (a exportação desejará criar as tabelas automaticamente, mas isso geralmente resulta em falha).Você pode criar rapidamente as tabelas no MySQL usando "Tarefas-> Gerar Scripts" clicando com o botão direito no banco de dados.Depois que seus scripts de criação forem gerados, você precisará percorrer e pesquisar/substituir palavras-chave e tipos que existem em MSSQL para MYSQL.

Claro que você também pode fazer backup do banco de dados normalmente e encontrar um utilitário que irá restaurar o backup do MSSQL no MYSQL.Não tenho certeza se existe algum.

Rolar sua própria solução PHP certamente funcionará, embora não tenha certeza se existe uma boa maneira de duplicar automaticamente o esquema de um banco de dados para outro (talvez essa seja sua pergunta).

Se você está apenas copiando dados e/ou precisa de código personalizado de qualquer maneira para converter entre esquemas modificados entre os dois bancos de dados, eu recomendaria usar PHP 5.2+ e as bibliotecas PDO.Você poderá se conectar usando PDO ODBC (e usar drivers MSSQL).Tive muitos problemas para obter campos de texto grandes e caracteres multibyte do MSSQL para o PHP usando outras bibliotecas.

Outra ferramenta para experimentar seria o conjunto SQLMaestro - http://www.sqlmaestro.com É um pouco complicado definir a ferramenta precisa, mas eles têm uma variedade de ferramentas, tanto gratuitas quanto para compra, que lidam com uma ampla variedade de tarefas para múltiplas plataformas de banco de dados.Eu sugiro tentar primeiro a ferramenta Data Wizard para MySQL, pois acredito que ela terá a ferramenta de "importação" adequada que você precisa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top