1 /*******************************************************************************
2 * Copyright (c) 2017 Kumar Rishabh(penguinRaider) and others.
4 * All rights reserved. This program and the accompanying materials
5 * are made available under the terms of the Apache License, Version 2.0
6 * which accompanies this distribution, and is available at
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *******************************************************************************/
10 var knex = require('knex')({
16 database : 'vnf_catalogue',
20 var Schema = require('./schema');
21 var sequence = require('when/sequence');
22 var _ = require('lodash');
23 function createTable(tableName) {
24 return knex.schema.createTable(tableName, function (table) {
26 var columnKeys = _.keys(Schema[tableName]);
27 _.each(columnKeys, function (key) {
28 if (Schema[tableName][key].type === 'text' && Schema[tableName][key].hasOwnProperty('fieldtype')) {
29 column = table[Schema[tableName][key].type](key, Schema[tableName][key].fieldtype);
31 else if (Schema[tableName][key].type === 'string' && Schema[tableName][key].hasOwnProperty('maxlength')) {
32 column = table[Schema[tableName][key].type](key, Schema[tableName][key].maxlength);
35 column = table[Schema[tableName][key].type](key);
37 if (Schema[tableName][key].hasOwnProperty('nullable') && Schema[tableName][key].nullable === true) {
43 if (Schema[tableName][key].hasOwnProperty('primary') && Schema[tableName][key].primary === true) {
46 if (Schema[tableName][key].hasOwnProperty('unique') && Schema[tableName][key].unique) {
49 if (Schema[tableName][key].hasOwnProperty('unsigned') && Schema[tableName][key].unsigned) {
52 if (Schema[tableName][key].hasOwnProperty('references')) {
53 column.references(Schema[tableName][key].references);
55 if (Schema[tableName][key].hasOwnProperty('defaultTo')) {
56 column.defaultTo(Schema[tableName][key].defaultTo);
61 function createTables () {
63 var tableNames = _.keys(Schema);
64 tables = _.map(tableNames, function (tableName) {
66 return createTable(tableName);
69 return sequence(tables);
73 console.log('Tables created!!');
76 .catch(function (error) {