Eu normalmente despejo o esquema usando mysqldump. No entanto, acredito que o mecanismo blackhole poderia ser usado como você descreve.
Você deve ALTER
todas as tabelas para BLACKHOLE
e INSERT
, UPDATE
e DELETE
registros não afetam os dados, pois blackhole não armazena os dados.
Você pode skip-innodb
e definir default-storage-engine=BLACKHOLE
e todas as tabelas criadas serão padronizadas como BLACKHOLE
, exceto aquelas criadas como MyISAM
, pois MyISAM
não pode ser desativado. Você precisa estar ciente disso ao criar tabelas no mestre, já que você pode precisar posteriormente ALTER
de volta para BLACKHOLE
no replicante escravo.
No entanto, o que você descreve é uma questão administrativa e não um problema técnico. Eu recomendo configurar pelo menos dois bancos de dados de desenvolvimento, que seriam mantidos pela equipe de infraestrutura.
O primeiro, seria um banco de dados de desenvolvimento. Os desenvolvedores têm mais acesso a esse banco de dados e seriam atualizados regularmente com dados limpos.
O segundo banco de dados seria um ambiente de controle de qualidade ou de teste, ao qual os desenvolvedores não teriam acesso ao RW. Isso permite a preparação adequada.
Esses dois bancos de dados seriam verificados pelo profissional de TI fazendo alterações de produção no banco de dados e seriam incluídos como parte do processo de preparação para a produção, o que garante esquemas consistentes em todos os ambientes.
Se você quiser que os desenvolvedores tenham bancos de dados em todo o lugar, eles simplesmente não poderão ser mantidos e será responsabilidade deles garantir que o conjunto de dados esteja atualizado o suficiente para suas necessidades. Você pode fornecer programaticamente um dump de esquema em uma unidade compartilhada ou talvez um escravo de replicação blackhole com acesso RO.