mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +01:00 
			
		
		
		
	options to specify different db-schema
This commit is contained in:
		
							parent
							
								
									f4e2bf50a6
								
							
						
					
					
						commit
						ce5258e6a6
					
				
							
								
								
									
										4
									
								
								app.js
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								app.js
									
									
									
									
									
								
							@ -21,10 +21,10 @@ module.exports = function (config) {
 | 
				
			|||||||
    app.locals.baseUriPath = baseUriPath;
 | 
					    app.locals.baseUriPath = baseUriPath;
 | 
				
			||||||
    app.use(cookieParser());
 | 
					    app.use(cookieParser());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (publicFolder) {
 | 
					/*    if (publicFolder) {
 | 
				
			||||||
        app.use(favicon(path.join(publicFolder, 'favicon.ico')));
 | 
					        app.use(favicon(path.join(publicFolder, 'favicon.ico')));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
    app.use(validator([]));
 | 
					    app.use(validator([]));
 | 
				
			||||||
    if (publicFolder) {
 | 
					    if (publicFolder) {
 | 
				
			||||||
        app.use(baseUriPath, express.static(publicFolder));
 | 
					        app.use(baseUriPath, express.static(publicFolder));
 | 
				
			||||||
 | 
				
			|||||||
@ -2,10 +2,13 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
const knex   = require('knex');
 | 
					const knex   = require('knex');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
module.exports.createDb = function (databaseConnection) {
 | 
					module.exports.createDb = function (databaseConnection, schema = 'public') {
 | 
				
			||||||
    return knex({
 | 
					    const db = knex({
 | 
				
			||||||
        client: 'pg',
 | 
					        client: 'pg',
 | 
				
			||||||
        connection: databaseConnection,
 | 
					        connection: databaseConnection,
 | 
				
			||||||
        pool: { min: 2, max: 20 },
 | 
					        pool: { min: 2, max: 20 },
 | 
				
			||||||
 | 
					        searchPath: schema,
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return db;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
				
			|||||||
@ -9,7 +9,7 @@ const ClientMetricsStore = require('./client-metrics-store');
 | 
				
			|||||||
const ClientStrategyStore = require('./client-strategy-store');
 | 
					const ClientStrategyStore = require('./client-strategy-store');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
module.exports.createStores = (config) => {
 | 
					module.exports.createStores = (config) => {
 | 
				
			||||||
    const db = createDb(config.databaseUri);
 | 
					    const db = createDb(config.databaseUri, config.databaseSchema);
 | 
				
			||||||
    const eventStore = new EventStore(db);
 | 
					    const eventStore = new EventStore(db);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return {
 | 
					    return {
 | 
				
			||||||
 | 
				
			|||||||
@ -2,12 +2,14 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
const DBMigrate = require('db-migrate');
 | 
					const DBMigrate = require('db-migrate');
 | 
				
			||||||
const path = require('path');
 | 
					const path = require('path');
 | 
				
			||||||
 | 
					const parseDbUrl = require('parse-database-url');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function migrateDb (dbUri) {
 | 
					function migrateDb (dbUrl, schema = "public") {
 | 
				
			||||||
    console.log(dbUri);
 | 
					    const custom = parseDbUrl(dbUrl);
 | 
				
			||||||
 | 
					    custom.schema = schema;
 | 
				
			||||||
    const dbmigrate = DBMigrate.getInstance(true, {
 | 
					    const dbmigrate = DBMigrate.getInstance(true, {
 | 
				
			||||||
        cwd: __dirname,
 | 
					        cwd: __dirname,
 | 
				
			||||||
        config: { "custom": dbUri},
 | 
					        config: { custom },
 | 
				
			||||||
        env: 'custom' }
 | 
					        env: 'custom' }
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
    return dbmigrate.up();
 | 
					    return dbmigrate.up();
 | 
				
			||||||
 | 
				
			|||||||
@ -63,6 +63,7 @@
 | 
				
			|||||||
    "knex": "^0.12.6",
 | 
					    "knex": "^0.12.6",
 | 
				
			||||||
    "log4js": "^1.0.1",
 | 
					    "log4js": "^1.0.1",
 | 
				
			||||||
    "moment": "^2.15.2",
 | 
					    "moment": "^2.15.2",
 | 
				
			||||||
 | 
					    "parse-database-url": "^0.3.0",
 | 
				
			||||||
    "pg": "^6.1.0",
 | 
					    "pg": "^6.1.0",
 | 
				
			||||||
    "serve-favicon": "^2.3.0",
 | 
					    "serve-favicon": "^2.3.0",
 | 
				
			||||||
    "unleash-frontend": "github:unleash/unleash-frontend",
 | 
					    "unleash-frontend": "github:unleash/unleash-frontend",
 | 
				
			||||||
 | 
				
			|||||||
@ -4,7 +4,6 @@ function getDatabaseUri () {
 | 
				
			|||||||
    if (process.env.TEST_DATABASE_URL) {
 | 
					    if (process.env.TEST_DATABASE_URL) {
 | 
				
			||||||
        return process.env.TEST_DATABASE_URL;
 | 
					        return process.env.TEST_DATABASE_URL;
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
        console.log('Using default unleash_test database');
 | 
					 | 
				
			||||||
        return 'postgres://unleash_user:passord@localhost:5432/unleash_test';
 | 
					        return 'postgres://unleash_user:passord@localhost:5432/unleash_test';
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -6,18 +6,24 @@ let supertest = require('supertest');
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
const options = {
 | 
					const options = {
 | 
				
			||||||
    databaseUri: require('./database-config').getDatabaseUri(),
 | 
					    databaseUri: require('./database-config').getDatabaseUri(),
 | 
				
			||||||
 | 
					    databaseSchema: 'test'
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const migrator = require('../../../migrator');
 | 
					const migrator = require('../../../migrator');
 | 
				
			||||||
const { createStores } = require('../../../lib/db');
 | 
					const { createStores } = require('../../../lib/db');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
process.env.DATABASE_URL = options.databaseUri
 | 
					// because of migrator bug
 | 
				
			||||||
 | 
					delete process.env.DATABASE_URL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const createApp =  migrator(options.databaseUri).then(() => {
 | 
					const db = require('../../../lib/db/db-pool').createDb(options.databaseUri);
 | 
				
			||||||
    const stores = createStores(options);
 | 
					
 | 
				
			||||||
    const app = require('../../../app')({stores});
 | 
					const createApp = db.raw(`CREATE SCHEMA IF NOT EXISTS ${options.databaseSchema}`)
 | 
				
			||||||
    return { stores, request: supertest(app) };
 | 
					    .then(() => migrator(options.databaseUri, options.databaseSchema))
 | 
				
			||||||
});
 | 
					    .then(() => {
 | 
				
			||||||
 | 
					        const stores = createStores(options);
 | 
				
			||||||
 | 
					        const app = require('../../../app')({stores});
 | 
				
			||||||
 | 
					        return { stores, request: supertest(app) };
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function createStrategies (stores) {
 | 
					function createStrategies (stores) {
 | 
				
			||||||
    return [
 | 
					    return [
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user