Added multi-app support in DatabaseAdapter.js
This commit is contained in:
@@ -20,6 +20,7 @@ var adapter = ExportAdapter;
|
|||||||
var cache = require('./cache');
|
var cache = require('./cache');
|
||||||
var dbConnections = {};
|
var dbConnections = {};
|
||||||
var databaseURI = 'mongodb://localhost:27017/parse';
|
var databaseURI = 'mongodb://localhost:27017/parse';
|
||||||
|
var appDatabaseURIs = {};
|
||||||
|
|
||||||
function setAdapter(databaseAdapter) {
|
function setAdapter(databaseAdapter) {
|
||||||
adapter = databaseAdapter;
|
adapter = databaseAdapter;
|
||||||
@@ -29,11 +30,17 @@ function setDatabaseURI(uri) {
|
|||||||
databaseURI = uri;
|
databaseURI = uri;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function setAppDatabaseURI(appId, uri) {
|
||||||
|
appDatabaseURIs[appId] = uri;
|
||||||
|
}
|
||||||
|
|
||||||
function getDatabaseConnection(appId) {
|
function getDatabaseConnection(appId) {
|
||||||
if (dbConnections[appId]) {
|
if (dbConnections[appId]) {
|
||||||
return dbConnections[appId];
|
return dbConnections[appId];
|
||||||
}
|
}
|
||||||
dbConnections[appId] = new adapter(databaseURI, {
|
|
||||||
|
var dbURI = (appDatabaseURIs[appId] ? appDatabaseURIs[appId] : databaseURI);
|
||||||
|
dbConnections[appId] = new adapter(dbURI, {
|
||||||
collectionPrefix: cache.apps[appId]['collectionPrefix']
|
collectionPrefix: cache.apps[appId]['collectionPrefix']
|
||||||
});
|
});
|
||||||
dbConnections[appId].connect();
|
dbConnections[appId].connect();
|
||||||
@@ -44,5 +51,6 @@ module.exports = {
|
|||||||
dbConnections: dbConnections,
|
dbConnections: dbConnections,
|
||||||
getDatabaseConnection: getDatabaseConnection,
|
getDatabaseConnection: getDatabaseConnection,
|
||||||
setAdapter: setAdapter,
|
setAdapter: setAdapter,
|
||||||
setDatabaseURI: setDatabaseURI
|
setDatabaseURI: setDatabaseURI,
|
||||||
|
setAppDatabaseURI: setAppDatabaseURI
|
||||||
};
|
};
|
||||||
|
|||||||
2
index.js
2
index.js
@@ -47,7 +47,7 @@ function ParseServer(args) {
|
|||||||
FilesAdapter.setAdapter(args.filesAdapter);
|
FilesAdapter.setAdapter(args.filesAdapter);
|
||||||
}
|
}
|
||||||
if (args.databaseURI) {
|
if (args.databaseURI) {
|
||||||
DatabaseAdapter.setDatabaseURI(args.databaseURI);
|
DatabaseAdapter.setAppDatabaseURI(args.appId, args.databaseURI);
|
||||||
}
|
}
|
||||||
if (args.cloud) {
|
if (args.cloud) {
|
||||||
addParseCloud();
|
addParseCloud();
|
||||||
|
|||||||
Reference in New Issue
Block a user