Este é o comando mysql-schema-diffp que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS
PROGRAMA:
NOME
mysql-schema-diff - compare os esquemas do banco de dados MySQL
SINOPSE
mysql-schema-diff [B ] B B
mysql-schema-diff --help
DESCRIÇÃO
mysql-schema-diff é um script Perl front-end para o CPANhttp://www.perl.com/CPAN> módulo
MySQL :: Diffhttp://search.cpan.org/search? module = MySQL :: Diff> que compara os dados
estruturas (ou seja, esquema / definições de tabela) de dois MySQLhttp://www.mysql.com/>
bancos de dados e retorna as diferenças como uma sequência de comandos MySQL adequados para piping
para dentro mysql que irá transformar a estrutura do primeiro banco de dados para ser idêntica a
o do segundo (cf. diff e remendo).
As estruturas de banco de dados podem ser comparadas, sejam arquivos contendo definições de tabelas ou
bancos de dados existentes, locais ou remotos.
NB O programa faz não tentar comparar qualquer um dos dados que podem ser armazenados no
bancos de dados. É puramente para comparar as definições da tabela. Eu não tenho planos para
implementar comparação de dados; é um problema complexo e não preciso disso
funcionalidade de qualquer maneira. No entanto, há outro programa coldiff
<http://rossbeyer.net/software/mysql_coldiff/> que faz isso, e é baseado em um antigo
programa chamado diferença de dados que parece ter desaparecido da 'rede.
Para PostgreSQL, existem ferramentas semelhantes, como pgdiffhttp://pgdiff.sourceforge.net/> e
apgdiffhttp://apgdiff.startnet.biz/>.
EXEMPLOS
# compara definições de tabela em dois arquivos
mysql-schema-diff db1.mysql db2.mysql
# compare as definições de tabela em um arquivo 'db1.mysql' com um banco de dados 'db2'
mysql-schema-diff db1.mysql db2
# atualize interativamente o esquema do banco de dados 'db1' para ser semelhante ao
# esquema descrito no arquivo 'db2.mysql'
mysql-schema-diff -A db1 db2.mysql
# comparar definições de tabela em dois bancos de dados em uma máquina remota
mysql-schema-diff --host = remote.host.com --user = myaccount db1 db2
# compare as definições de tabela em um banco de dados local 'foo' com um
# banco de dados 'bar' em uma máquina remota, quando um arquivo já está disponível
# existe no diretório atual
mysql-schema-diff --host2 = remote.host.com --password = secret db: foo bar
OPÇÕES
Mais detalhes em breve; por agora execute "mysql-schema-diff --help".
INTERNOS
Para ambas as estruturas de banco de dados sendo comparadas, acontece o seguinte:
· Se o argumento for um nome de arquivo válido, o arquivo é usado para criar um banco de dados temporário
no qual "mysqldump -d" é executado para obter as definições da tabela na forma canônica.
O banco de dados temporário é então eliminado. (O banco de dados temporário é nomeado
"test_mysqldiff_temp_something" porque as permissões padrão do MySQL permitem que qualquer pessoa
crie bancos de dados começando com o prefixo "test_".)
· Se o argumento for um banco de dados, "mysqldump -d" é executado diretamente nele.
· Onde a autenticação for necessária, o nome do host, nome de usuário e senha fornecidos pelo
as opções correspondentes são usadas (digite "mysql-schema-diff --help" para mais informações).
· Cada conjunto de definições de tabela agora é analisado em tabelas, campos e chaves de índice
dentro dessas tabelas; estes são comparados e as diferenças geradas na forma de
Declarações do MySQL.
Use mysql-schema-diffp online usando serviços onworks.net