Estou restaurando um backup de um mysqldump e notando que, se fiz adições (na forma de novas tabelas) ao banco de dados, elas persistem após a restauração. Posso voltar e remover essas tabelas para voltar ao estado original, mas como preciso testar as migrações, gostaria de trazer o banco de dados de volta ao seu estado durante o despejo sem entrar e remover manualmente as tabelas.
Suponho que poderia fazer um DROP Database XXX
antes da restauração, mas isso prejudicará meus métodos de restauração atuais?
mysqldump
tem uma--add-drop-database
opção que irá colocá-los no arquivo para você.Ele adicionará isso, antes de cada banco de dados no arquivo:
Para o benefício de qualquer um que não esteja familiarizado com comentários mágicos, isso não é um comentário . É uma instrução que será executada pelo MySQL 4.00.00 e superior, disfarçada como um comentário para compatibilidade com versões anteriores.
E, claro, isso pressupõe que seu banco de dados, como o meu, seja chamado de "contabilidade".
Observe, porém, que para
--add-drop-database
funcionar, você precisa especificar o(s) banco(s) de dados para fazer backup usando--all-databases
ou a--databases YOUR_DB_NAME
opção de linha de comando paramysqldump
. Você "pode" fazer um backup de um único banco de dados com apenas o nome do banco de dados na própria linha de comando, sem a--databases
opção que o precede ... isso também funciona, mas não é realmente um bom caminho, a menos que você pretenda restaure o backup em um nome de banco de dados diferente daquele de onde você o obteve, o que, graças à maneira como essa opção funciona, você pode fazer mesmo que não seja seu plano.Usar
--databases YOUR_DB_NAME
ou--all-databases
automaticamente adiciona instruçõesCREATE DATABASE
eUSE your_db_name;
ao início de cada esquema no arquivo. Isso significa que você não precisa especificá-lo ao restaurar e, se esquecer ou errar, os dados ainda vão para o lugar certo - o lugar "certo" é o lugar onde o arquivo diz que deveria ir.A
--add-drop-database
opção adiciona aDROP
instrução para abrir caminho para a nova, imediatamente antes das instruçõesCREATE
eUSE
.