sql >> データベース >  >> NoSQL >> MongoDB

Mongo本番データベースとテストデータベースを切り替える-JavaSpringBoot

    個人的には、テストに組み込みデータベースを使用することを好みます。 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";
      }
    }
    

    テストクラス:

    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 {
    
    }
    

    開発や本番環境などの他のプロファイルについては、スプリングブートプロファイルを使用できます(ドキュメント )または、mavenプロファイルを使用できます:in application.properties このプロパティを追加します[email protected]@ 次に、pom.xmlで定義します 使用済みプロファイルに準拠:

        <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. ScaleGridがAmazonAWSでの共有MongoDBホスティングを発表

    2. PHPのmongo検索フィールドはで始まります

    3. mongoでドキュメントを条件付きでアップサートするにはどうすればよいですか?

    4. Python RQですでに実行されているタスクをキャンセルしますか?