Script para sincronizar estruturas de BD MySQL

Vamos ver nesse post um script que faz a sincronização de dois BDs MySQL e retorna as queries necesárias à atualização daquele que estiver desatualizado. Script interessante que permite sincronizar dados de dois BDs MySQL, obtidos por exemplo usando um mysqldump, ver as diferençcas existentes entre ambos e devolver as queries necessárias para igualar as duas estruturas.

Por | @jonathanlamimkt Programação

Script interessante que permite sincronizar dados de dois BDs MySQL, obtidos por exemplo usando um mysqldump, ver as diferençcas existentes entre ambos e devolver as queries necessárias para igualar as duas estruturas.

Por exemplo, se temos a estrutura seguinte:

CREATE TABLE IF NOT EXISTS `archive` (
`id` int(11) NOT NULL auto_increment,
`topFile` varchar(255) NOT NULL default "",
`msgId` int(11) NOT NULL default "0",
`time` timestamp NOT NULL default CURRENT_TIMESTAMP,
`topTpl` varchar(255) NOT NULL default "",
`file` varchar(255) NOT NULL default "",
`template` varchar(255) NOT NULL default "",
`instanceKey` varchar(255) NOT NULL default "",
`orderby` varchar(25) NOT NULL default "",
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=10256 ;

E esta outra:

CREATE TABLE IF NOT EXISTS `archive` (
`id` int(11) NOT NULL auto_increment,
`topFile` varchar(255) NOT NULL default "",
`msgId` int(11) NOT NULL default "0",
`time` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`topTpl` varchar(255) NOT NULL default "",
`file` varchar(255) NOT NULL default "",
`template` varchar(255) NOT NULL default "",
`instanceKey` varchar(255) NOT NULL default "",
`encoding` varchar(50) NOT NULL default "",
`orderby` varchar(255) NOT NULL default "",
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=10256 ;

Serão retornadas as seguintes sentenças:

ALTER TABLE `archive` ADD `encoding` varchar(50) NOT NULL;
ALTER TABLE `archive` MODIFY `orderby` varchar(255) NOT NULL;
ALTER TABLE `archive` MODIFY `time` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP;
ALTER TABLE `archive` DROP PRIMARY KEY;

Um script bastante útil quando temos diferençãs entre a base dados de desenvolvimento e a de produção, e não sabemos que mudanças foram realizadas.

Confira em Database structure synchronizer

Mais sobre: programação banco de dados mysql
Share Tweet
Recomendado
Comentários
Carregar comentários
Destaquesver tudo