sql >> Databáze >  >> NoSQL >> MongoDB

Přepínání mezi Mongo produkční a testovací databází - Java Spring Boot

Osobně dávám přednost použití vestavěné databáze pro testování. Můžete použít FakeMongo

package com.backend.configuration;

import com.github.fakemongo.Fongo;
import com.mongodb.Mongo;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;

@Configuration
@EnableMongoRepositories(basePackages = "com.backend.repository")
public class MongoConfiguration extends AbstractMongoConfiguration {

  private static final String DB_NAME = "test";

  @Override
  protected String getDatabaseName() {
    return DB_NAME;
  }

  @Override
  @Bean
  public Mongo mongo() {
    return new Fongo(getDatabaseName()).getMongo();
  }

  @Override
  protected String getMappingBasePackage() {
    return "com.backend.domain";
  }
}

V testovací třídě:

package com.backend.repository;

import com.backend.configuration.MongoConfiguration;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = MongoConfiguration.class)
public class CustomerRepositoryTest {

}

Pro ostatní profily, jako je vývoj a výroba, můžete použít profil jarního spouštění (viz doc ) nebo můžete použít profil maven :in application.properties přidat tuto vlastnost [email protected]@ pak jej definujte v pom.xml podle použitého profilu:

    <profile>
        <id>dev</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <mongo.host>localhost</mongo.host>
        </properties>
    </profile>
    <profile>
        <id>prod</id>
        <properties>
            <mongo.host>mongo</mongo.host>
        </properties>
    </profile>


  1. chyba pymongo:bson.errors.InvalidBSON:kodek 'utf8' nemůže dekódovat bajt 0xa1 na pozici 25:neplatný počáteční bajt

  2. Problémy ve spojení mezi Node.js a kontejnerem MongoDB pomocí var. v Docker Compose

  3. Co znamená velikost souboru a velikost dat v MongoDB?

  4. Jak propojit mongoDB s pythonem?