Mongock é uma ferramenta de migração baseada em Java como parte do código do seu aplicativo para ambientes distribuídos. Ele permite que os desenvolvedores executem migrações mais seguras tendo propriedade e controle sobre as migrações de dados durante o processo de implantação do aplicativo, pois as alterações de código e dados são enviadas juntas.
As ferramentas de migração de banco de dados são essenciais em aplicativos onde você precisa migrar dados para um banco de dados, alterar um esquema, atualizar um registro/documento em todos os ambientes e onde é tedioso fazer isso manualmente ( quase sempre? ). Isso também pode ajudá-lo a acompanhar as alterações feitas, assim como o controle de versão.
Com Java, existem várias bibliotecas que você pode usar para esse propósito. Há Liquibase , Flyway , Mongock e talvez mais.
Para usar o mesmo com um Java, você precisaria das seguintes dependências (além dos dados do Mongo Java Driver/Spring Mongo que você usaria para configurar o aplicativo de qualquer maneira):
Ao importar o acima, tudo o que você precisa fazer é:
- Anote a classe do aplicativo com
@EnableMongock
- Especifique o(s) pacote(s) onde você localizaria suas
Changelog
aulas no seuapplication.yml
ouapplication.properties
sobmongock.change-logs-scan-package
Com isso, o aplicativo deve estar pronto para ser executado, sem problemas.
Ai segue um exemplo de changelog
@ChangeLog(order = "001")
public class Changelog {
@ChangeSet(order = "001", id="001", author = "pradipta")
public void dummyChangeSet() {
System.out.println("Dummy changeset" );
}
@ChangeSet(order = "002", id="criar coleção", autor = "pradipta")
public void createCollection(MongoDatabase db) {
MongoCollection<Document> mycollection = db.getCollection("dummycollection");
Documento doc = new Document("k1", "v1").append("k2", "v2");
minhacoleção.insertOne(doc);
}
@ChangeSet(order = "003", id = "inserir documento", autor = "pradipta")
public void insertDocument(MongockTemplate mongockTemplate) {
User user = new User("Nome", "Email", "Telefone");
//Usuário é uma entidade com uma coleção já definida
mongockTemplate.save(user);
}
}
E ele trabalha também com o repository do Spring
@ChangeLog(order = "1")
class Cookie02CreateCollection() {
@ChangeSet(order = "1", id = "init_database", author = "name")
fun initDatabase(myRepository: MyRepository) {
myRepository.saveAll({.....})
}
}
Top comments (0)