Tenho uma comparação que busca na coluna startup_image o valor registrado. Se o valor for igual a 0, exibe o conteúdo X. Se o valor for qualquer outro, exibe o conteúdo Y: Show Código que uso <?php if ($dados['user']['startup_image'] == 0) { ?>Agora a minha dificuldade: Quando utilizo o mesmo código usado na coluna startup_image, não funciona. Já tentei desta forma: <?php if ($dados['user']['perfil'] == 'uploads/imagens/foto.jpg') { ?>Poderiam me ajudar?
Atualmente estou desenvolvendo um aplicativo usando um banco de dados MySQL. A estrutura do banco de dados ainda está em fluxo e muda enquanto o desenvolvimento avança (eu mudo minha cópia local, deixando a única no servidor de teste). Existe uma maneira de comparar as duas instâncias do banco de dados para ver se houve alguma alteração? Enquanto atualmente simplesmente descartar o banco de dados do servidor de teste anterior é bom, como o teste começa a inserir dados de teste pode ficar um pouco complicado. Existe uma maneira fácil de incrementalmente fazer alterações no banco de dados de produção, de preferência criando automaticamente um script para modificá-lo? Ferramentas mencionadas nas respostas:
A partir da lista de comparação de recursos ... O MySQL Workbench oferece Schema Diff e Schema Synchronization em sua edição da comunidade.
Dê uma olhada no dbForge Data Compare for MySQL . É um shareware com 30 dias de período de teste gratuito. É uma ferramenta GUI MySQL rápida para comparação e sincronização de dados, gerenciamento de diferenças de dados e sincronização personalizável.
Depois de horas procurando na web por ferramenta simples, percebi que não olhei no Ubuntu Software Center. Aqui está uma solução livre que eu encontrei: http://torasql.com/ Eles afirmam ter uma versão para o Windows também, mas eu estou usando apenas no Ubuntu. Edit: 2015-Feb-05 Se você precisar de ferramenta do Windows, o TOAD é perfeito e gratuito: http://software.dell.com/products/toad-for-mysql/
Eu estou trabalhando com a equipe de marketing da Nob Hill, eu gostaria de dizer que ficarei feliz em ouvir suas perguntas, sugestões ou qualquer outra coisa, por favor sinta-se à vontade para entrar em contato comigo. Originalmente, decidimos criar nossa ferramenta a partir do zero, porque, embora existam outros produtos no mercado, nenhum deles faz o trabalho corretamente. É muito fácil mostrar as diferenças entre bancos de dados. É outra completamente diferente fazer um banco de dados como o outro. A migração suave, tanto de esquema quanto de dados, sempre foi um desafio. Bem, nós conseguimos isso aqui. http://www.nobhillsoft.com/NHDBCompare.aspx
Eu uso um software chamado Navicat para:
Custa dinheiro, é só o windows e o mac, e tem uma interface de usuário maluca, mas eu gosto disso.
Existe uma Ferramenta de Sincronização de Esquema no SQLyog (comercial) que gera SQL para sincronizar dois bancos de dados.
Existe uma ferramenta útil escrita usando o perl chamado Maatkit . Ele tem várias ferramentas de comparação e sincronização de banco de dados, entre outras coisas.
Muito fácil de usar ferramenta de comparação e sincronização: Vantagens:
Desvantagens:
Para a primeira parte da questão, eu apenas faço uma cópia de ambos e diferencio-os. Não tenho certeza sobre o mysql, mas o postgres pg_dump tem um comando para apenas descarregar o esquema sem o conteúdo da tabela, para que você possa ver se alterou o esquema.
Se você só precisa comparar esquemas (não dados) e ter acesso ao Perl, o mysqldiff pode funcionar. Eu usei isso porque permite comparar bancos de dados locais com bancos de dados remotos (via SSH), para que você não precise se incomodar em despejar dados. http://adamspiers.org/computing/mysqldiff/ Ele tentará gerar consultas SQL para sincronizar dois bancos de dados, mas eu não confio nele (ou qualquer ferramenta, na verdade). Até onde sei, não há maneira 100% confiável de fazer engenharia reversa das mudanças necessárias para converter um esquema de banco de dados em outro, especialmente quando várias alterações foram feitas. Por exemplo, se você alterar apenas o tipo de uma coluna, uma ferramenta automatizada poderá adivinhar facilmente como recriá-la. Mas se você também mover a coluna, renomeá-la e adicionar ou remover outras colunas, o melhor que qualquer pacote de software pode fazer é adivinhar o que provavelmente aconteceu. E você pode acabar perdendo dados. Gostaria de sugerir que você acompanhasse quaisquer alterações de esquema feitas no servidor de desenvolvimento e, em seguida, executasse essas instruções manualmente no servidor ativo (ou as transferisse para um script de upgrade ou migração). É mais entediante, mas vai manter seus dados seguros. E quando você começar a permitir que os usuários finais acessem o seu site, você realmente estará fazendo constantes mudanças pesadas no banco de dados?
verifique: http://schemasync.org/ a ferramenta schemasync funciona para mim, é uma ferramenta de linha de comando funciona facilmente na linha de comando do linux
Toad possui recursos de comparação de dados e esquemas, e acredito que até criará um script de sincronização. O melhor de tudo, é freeware.
Structured Query Language ou SQL é uma linguagem de banco de dados padrão que é usada para criar, manter e recuperar os dados de bancos de dados relacionais como MySQL, Oracle, etc. Aqui vamos ver como comparar e encontrar diferenças entre duas tabelas em SQL Aqui, primeiro criaremos um banco de dados denominado “geeks” e, em seguida, criaremos duas tabelas “ department_old ” e “ department_new ” nesse banco de dados. Em seguida, executaremos nossa consulta nessa tabela. Criando banco de dados :.Use a instrução SQL abaixo para criar um banco de dados chamado geeks : CREATE geeks;Usando banco de dados:USE geeks;Definição de tabela para a tabela department_old :CREATE TABLE department_old( ID int, SALARY int, NAME Varchar(20), DEPT_ID Varchar(255));Adicione valores à tabela:Use a consulta abaixo para adicionar dados à tabela: INSERT INTO department_old VALUES (1, 34000, 'ANURAG', 'UI DEVELOPERS'); INSERT INTO department_old VALUES (2, 33000, 'HARSH', 'BACKEND DEVELOPERS'); INSERT INTO department_old VALUES (3, 36000, 'SUMIT', 'BACKEND DEVELOPERS'); INSERT INTO department_old VALUES (4, 36000, 'RUHI', 'UI DEVELOPERS'); INSERT INTO department_old VALUES (5, 37000, 'KAE', 'UI DEVELOPERS');Para verificar o conteúdo da tabela, use a declaração abaixo: SELECT * FROM department_old;
O resultado do SQL Server Management Studio: Definição de tabela para a nova tabela department :CREATE TABLE department_new( ID int, SALARY int, NAME Varchar(20), DEPT_ID Varchar(255));Adicione valores à tabela:Use a consulta abaixo para adicionar dados à tabela: INSERT INTO department_new VALUES (1, 34000, 'ANURAG', 'UI DEVELOPERS'); INSERT INTO department_new VALUES (2, 33000, 'HARSH', 'BACKEND DEVELOPERS'); INSERT INTO department_new VALUES (3, 36000, 'SUMIT', 'BACKEND DEVELOPERS'); INSERT INTO department_new VALUES (4, 36000, 'RUHI', 'UI DEVELOPERS'); INSERT INTO department_new VALUES (5, 37000, 'KAE', 'UI DEVELOPERS'); INSERT INTO department_new VALUES (6, 37000, 'REHA', 'BACKEND DEVELOPERS');Para verificar o conteúdo da tabela, use a declaração abaixo: SELECT * FROM department_new;
Saída: Comparando os resultados das duas consultasSuponhamos que temos duas tabelas: tabela1 e tabela2 . Aqui, usaremos UNION ALL para combinar os registros com base nas colunas que precisam ser comparadas. Se os valores nas colunas que precisam ser comparados forem iguais, COUNT (*) retornará 2, caso contrário, COUNT (*) retornará 1. Sintaxe: SELECT column1, column2.... columnN FROM ( SELECT table1.column1, table1.column2 FROM table1 UNION ALL SELECT table2.column1, table2.column2 FROM table2 ) table1 GROUP BY column1 HAVING COUNT(*) = 1Exemplo: Select ID from ( select * from department_old UNION ALL select * from department_new) department_old GROUP BY ID HAVING COUNT(*) = 1Saída: Se os valores nas colunas envolvidas na comparação forem idênticos, nenhuma linha retornará. |