2015-04-23 29 views
6

Mi piacerebbe implementare la multi-tenancy nella mia app di loopback. In questo momento, sto cercando di utilizzare il middleware per ridefinire le mie origini dati in modo da puntare a database diversi sul mio server mongodb per ogni richiesta, in base al dominio della richiesta. Il codice viene eseguito, ma in realtà non sembra che stia cambiando l'origine dati. Invece, usa sempre quello definito nel mio datasources.json.Database Swap Multitenancy Loopback

In questo momento, questo è quello che sto facendo. Tutti i miei modelli fanno riferimento a "my_db" e mi piacerebbe avere un database sul mio server mongo per ogni tenant.

var dataSourceObj = { 
     my_db:{ 
      url: process.env.MONGOLAB_URI, 
      connector: "mongodb", 
      name: "my_db", 
      database: tenant 
     } 
     } 

     Object.keys(dataSourceObj).forEach(function(dataSource) { 

     app.dataSources[dataSource].adapter.settings = dataSourceObj[dataSource]; 
     app.dataSources[dataSource].adapter.clientConfig = dataSourceObj[dataSource]; 
     app.dataSources[dataSource].settings = dataSourceObj[dataSource]; 
     app.dataSources[dataSource].connector.settings = dataSourceObj[dataSource]; 
     app.dataSources[dataSource].connector.clientConfig = dataSourceObj[dataSource]; 

     }); 

Qualcuno ha qualche idea? È un modo stupido di fare multi-tenancy?

Grazie!

+1

Qual è 'tenant' nel codice di cui sopra? – jakerella

+0

Hai mai trovato una soluzione? –

risposta

1

Faccio questo progetto. Sono un'alternativa.

https://github.com/paulomcnally/loopback-example-multitenant

+0

Paulo ho testato il tuo progetto con questo: 'curl --data' username = paulomcnally1 & message = Ciao mondo "http://127.0.0.1:4000/demo1/tweets & curl --data" username = paulomcnally2 & message = Hello world "http : //127.0.0.1: 4000/demo2/tweets & '. Entrambi i tweet sono stati scritti su database demo2. C'è qualche problema con la concorrenza o sto facendo qualcosa di sbagliato? – Musma