Skip to main content

Databases

Bu paketi kurmak için npm install @waterboys/databases@latest komutunu çalıştırmanız yeterli olacaktır. bu paketi MongoDB ve PostgreSql(Sequelize) için kullanabilirsiniz, paketin içinde domain ayrımı yapılmaktadır.

Domains

  1. Delivery

Yeni Domain Ekleme

PostgreSql'e yeni bir domain eklemek isterseniz, yapılması gerekenler;

  1. src/postgres/yeniDomain/ yeni ekleyeceğiniz domaine ait klasörü açtıktan sonra kullanacağınız entitiy'leri eklemeniz gerekmektedir. Ekleyeceğiniz entityler için burayı inceleyebilirsiniz.

  2. types/domains.ts içeriğine yeni domaniniz belirmeniz gerekmektedir.

    type DOMAINS = 'DELIVERY' | 'ORNEK';

  3. Postgres içerisindeki DeliveryEntities gibi entities'leriniz Interfaces'ini oluşturmanız gerekmektedir.

    interface DeliveryEntities {
    task: Repository<deliveryEntities.Task>;
    depot: Repository<deliveryEntities.Depot>;
    }
    Burada entities'lerinizi getRepository() ile kullanıma açıyorsunuz.

    private getDeliveryEntities() {
    Postgres.entities = {
    depot: Postgres.DB.getRepository(deliveryEntities.Depot)
    };
    }
    Yeni ekleyeceğiniz domaini swicth'in içine case olarak ekleyip ilgili fonksiyonu çağırmalısınız.
    private setEntities() {
    switch (this.domain) {
    case 'DELIVERY':
    this.getDeliveryEntities();
    break;
    }
    }

Kullanım

  1. Postgres
    enablePg() {
new Postgres()
.setDomain('DELIVERY')
.setConfig(postgreConfig)
.initializeDB();
}
  1. Mongo
    enableMongoDB() {
new Mongo()
.setDomain('DELIVERY')
.setConfig(mongoDbConfig, baseConfig.NODE_ENV)
.connectionDB();
}