From dc3708d14fdd1e88f1c7e4c5b21f2d834435e440 Mon Sep 17 00:00:00 2001 From: Petros Aggelatos Date: Mon, 23 Dec 2013 04:24:40 +0000 Subject: [PATCH] Wait for db initialisation before starting app --- src/db.coffee | 37 ++++++++++++++++++++----------------- src/supervisor.js | 7 ++++++- 2 files changed, 26 insertions(+), 18 deletions(-) diff --git a/src/db.coffee b/src/db.coffee index cc7f8d1c..5f6add24 100644 --- a/src/db.coffee +++ b/src/db.coffee @@ -1,3 +1,4 @@ +Promise = require 'bluebird' Knex = require('knex') knex = Knex.initialize( @@ -6,22 +7,24 @@ knex = Knex.initialize( filename: '/supervisor/data/database.sqlite' ) -knex.schema.hasTable('config').then((exists) -> - if not exists - knex.schema.createTable('config', (t) -> - t.string('key').primary() - t.string('value') - ) -) - -knex.schema.hasTable('app').then((exists) -> - if not exists - knex.schema.createTable('app', (t) -> - t.increments('id').primary() - t.string('name') - t.string('imageId') - t.string('status') - ) -) +knex.init = Promise.all([ + knex.schema.hasTable('config').then((exists) -> + if not exists + knex.schema.createTable('config', (t) -> + t.string('key').primary() + t.string('value') + ) + ) + knex.schema.hasTable('app').then((exists) -> + if not exists + knex.schema.createTable('app', (t) -> + t.increments('id').primary() + t.string('name') + t.string('containerId') + t.string('imageId') + t.boolean('privileged') + ) + ) +]) module.exports = knex diff --git a/src/supervisor.js b/src/supervisor.js index ac273f72..93d31b55 100755 --- a/src/supervisor.js +++ b/src/supervisor.js @@ -1,2 +1,7 @@ require('coffee-script'); -require('./app'); +var knex = require('./db') + +// Wait for the DB schema to be created +knex.init.then(function () { + require('./app'); +})