Dump de triggers, functions e procedures no MySQL

E aí pessoal,

Essa semana me deparei com um problema que rolou durante uma virada de migração de dados de um cliente novo aqui na empresa. O que aconteceu e que realmente eu acho um pé no saco é o fato do MySQL não exportar alguns caras que eu julgo bem importante, no caso as triggers, functions e procedures por padrão no momento do dump (mysqldump).

O nosso migrador por ventura esqueceu do parâmetro –routines depois de mergir as bases de dados, então quando o pessoal foi usar a aplicação logo pipocou uma exception dando falta de uma função para formatar telefones lá num relatório.

Para resolver esse caso para o cliente seguir com a sua vida, eu acabei fazendo um dump do nosso snapshot de referência:

[bash]mysqldump -u[user] -p[pass] –routines –no-create-info –no-data –no-create-db –skip-opt [database] > out.sql[/bash]

O arquivo out.sql contém apenas o create de todas as triggers, functions e procedures que há na base de dados informada, porém fico atento a um detalhe, ele não adiciona nenhum comando de DROP, então vale a pena prestar atenção na execução do script para ver se tudo ficou correto.

Abraços.