From 4bab9be34e0f36d048b7b0eea65ed09c9ac58f21 Mon Sep 17 00:00:00 2001 From: Frank Lemanschik Date: Fri, 16 Dec 2016 21:14:38 +0000 Subject: [PATCH 1/6] Added: sqllite --- database.json | 6 +++- migrations/20150801045523-players.js | 2 +- migrations/20150804053921-add-stats.js | 9 +++--- migrations/20150809023413-add-stats-time.js | 15 ---------- migrations/20150816063154-add-users.js | 11 ++++++- migrations/20160301185116-required-fields.js | 31 -------------------- migrations/20160307152540-validate-emails.js | 24 --------------- migrations/20160313205522-team-ints.js | 21 ------------- models/bookshelf.js | 12 +++++++- 9 files changed, 32 insertions(+), 99 deletions(-) delete mode 100644 migrations/20150809023413-add-stats-time.js delete mode 100644 migrations/20160301185116-required-fields.js delete mode 100644 migrations/20160307152540-validate-emails.js delete mode 100644 migrations/20160313205522-team-ints.js diff --git a/database.json b/database.json index 50745866..a7d77b21 100644 --- a/database.json +++ b/database.json @@ -1,5 +1,9 @@ { - "dev": "postgres://localhost:5432/bitballs", + "dev": { + "driver": "sqlite3", + "filename": "sqlite.db" + }, + "test": "postgres://localhost:5432/bitballs", "prod": { "ENV": "DATABASE_URL", "driver": "pg" diff --git a/migrations/20150801045523-players.js b/migrations/20150801045523-players.js index ba9cd05a..d89d28b5 100644 --- a/migrations/20150801045523-players.js +++ b/migrations/20150801045523-players.js @@ -1,7 +1,7 @@ exports.up = function(db, callback) { db.createTable('players', { id: { type: 'int', primaryKey: true, autoIncrement: true }, - name: 'string', + name: { type: 'string', notNull: true }, weight: 'int', height: 'int', birthday: 'date', diff --git a/migrations/20150804053921-add-stats.js b/migrations/20150804053921-add-stats.js index 1c8f2548..1069ecee 100644 --- a/migrations/20150804053921-add-stats.js +++ b/migrations/20150804053921-add-stats.js @@ -4,7 +4,7 @@ exports.up = function(db, callback) { async.series([ db.createTable.bind(db, 'tournaments', { id: { type: 'int', primaryKey: true, autoIncrement: true }, - date: 'date' + date: { type: 'date', notNull: true }, }), db.createTable.bind(db, 'teams', { id: { type: 'int', primaryKey: true, autoIncrement: true }, @@ -22,13 +22,15 @@ exports.up = function(db, callback) { round: 'string', court: 'string', videoUrl: 'string', - homeTeamId: 'string', - awayTeamId: 'string' + homeTeamId: 'int', + awayTeamId: 'int' }), db.createTable.bind(db, 'stats', { id: { type: 'int', primaryKey: true, autoIncrement: true }, gameId: 'int', playerId: 'int', + time: { type: 'int' }, + value: {type: 'int'}, type: 'string' }) ], callback); @@ -42,4 +44,3 @@ exports.down = function(db, callback) { db.dropTable.bind(db, 'stats') ], callback); }; - diff --git a/migrations/20150809023413-add-stats-time.js b/migrations/20150809023413-add-stats-time.js deleted file mode 100644 index 0e9bb4a1..00000000 --- a/migrations/20150809023413-add-stats-time.js +++ /dev/null @@ -1,15 +0,0 @@ -var async = require('async'); - -exports.up = function(db, callback) { - async.series([ - db.addColumn.bind(db, "stats","time",{type: 'int'}), - db.addColumn.bind(db, "stats","value",{type: 'int'}) - ], callback); -}; - -exports.down = function(db, callback) { - async.series([ - db.removeColumn.bind(db, "stats","time"), - db.removeColumn.bind(db, "stats","value") - ], callback); -}; diff --git a/migrations/20150816063154-add-users.js b/migrations/20150816063154-add-users.js index ac315bd2..9bed887f 100644 --- a/migrations/20150816063154-add-users.js +++ b/migrations/20150816063154-add-users.js @@ -2,8 +2,17 @@ exports.up = function(db, callback) { db.createTable('users', { id: { type: 'int', primaryKey: true, autoIncrement: true }, name: 'string', - password: 'string', + password: { type: 'string', notNull: true }, email: {type: 'string', unique: true}, + verificationHash: { + type: "string", + length: 100 + }, + verified: { + type: "boolean", + notNull: true, + defaultValue: false + }, isAdmin: 'boolean' }, callback); }; diff --git a/migrations/20160301185116-required-fields.js b/migrations/20160301185116-required-fields.js deleted file mode 100644 index f722c71f..00000000 --- a/migrations/20160301185116-required-fields.js +++ /dev/null @@ -1,31 +0,0 @@ -var async = require('async'); - -exports.up = function(db, callback) { - async.series([ - db.changeColumn.bind(db, 'players', 'name', { - notNull: true - }), - db.changeColumn.bind(db, 'users', 'password', { - notNull: true - }), - db.changeColumn.bind(db, 'tournaments', 'date', { - notNull: true - }) - ], - callback); -}; - -exports.down = function(db, callback) { - async.series([ - db.changeColumn.bind(db, 'players', 'name', { - notNull: false - }), - db.changeColumn.bind(db, 'users', 'password', { - notNull: false - }), - db.changeColumn.bind(db, 'tournaments', 'date', { - notNull: false - }) - ], - callback); -}; diff --git a/migrations/20160307152540-validate-emails.js b/migrations/20160307152540-validate-emails.js deleted file mode 100644 index 21c8c023..00000000 --- a/migrations/20160307152540-validate-emails.js +++ /dev/null @@ -1,24 +0,0 @@ -var async = require('async'); - -exports.up = function(db, callback) { - async.series([ - db.addColumn.bind(db, 'users', 'verified', { - type: "boolean", - notNull: true, - defaultValue: false - }), - db.addColumn.bind(db, 'users', 'verificationHash', { - type: "string", - length: 100 - }) - ], - callback); -}; - -exports.down = function(db, callback) { - async.series([ - db.removeColumn.bind(db, 'users', 'verified' ), - db.removeColumn.bind(db, 'users', 'verificationHash' ) - ], - callback); -}; diff --git a/migrations/20160313205522-team-ints.js b/migrations/20160313205522-team-ints.js deleted file mode 100644 index b8b8090c..00000000 --- a/migrations/20160313205522-team-ints.js +++ /dev/null @@ -1,21 +0,0 @@ -var async = require('async'); - -exports.up = function(db, callback) { - async.series([ - db.runSql.bind(db, 'ALTER TABLE games ALTER COLUMN "homeTeamId" TYPE integer USING "homeTeamId"::numeric'), - db.runSql.bind(db, 'ALTER TABLE games ALTER COLUMN "awayTeamId" TYPE integer USING "awayTeamId"::numeric') - ], - callback); -}; - -exports.down = function(db, callback) { - async.series([ - db.changeColumn.bind(db, 'games', 'homeTeamId', { - type: 'string' - }), - db.changeColumn.bind(db, 'games', 'awayTeamId', { - type: 'string' - }) - ], - callback); -}; diff --git a/models/bookshelf.js b/models/bookshelf.js index e27e7266..6f57e9f8 100644 --- a/models/bookshelf.js +++ b/models/bookshelf.js @@ -7,8 +7,18 @@ var connectionString = typeof dbEnvironmentConfig === 'string' ? dbEnvironmentConfig : process.env[dbEnvironmentConfig.ENV]; +if (typeof dbEnvironmentConfig.filename === 'string') { + connectionString = { + filename: dbEnvironmentConfig.filename + } + // Creates the database if needed + var driver = require(dbEnvironmentConfig.driver).verbose(); + var db = new driver.Database(dbEnvironmentConfig.filename); +} + + var knex = require('knex')({ - client: 'pg', + client: dbEnvironmentConfig.driver, connection: connectionString }); From 395132abbfd0fedb22c834bcc8ece98d63432f04 Mon Sep 17 00:00:00 2001 From: Frank Lemanschik Date: Fri, 16 Dec 2016 21:21:38 +0000 Subject: [PATCH 2/6] fix --- models/bookshelf.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/models/bookshelf.js b/models/bookshelf.js index 6f57e9f8..5b5e6255 100644 --- a/models/bookshelf.js +++ b/models/bookshelf.js @@ -10,10 +10,10 @@ var connectionString = typeof dbEnvironmentConfig === 'string' ? if (typeof dbEnvironmentConfig.filename === 'string') { connectionString = { filename: dbEnvironmentConfig.filename - } + }; // Creates the database if needed var driver = require(dbEnvironmentConfig.driver).verbose(); - var db = new driver.Database(dbEnvironmentConfig.filename); + new driver.Database(dbEnvironmentConfig.filename); } From 45c37e008bd0efaa2e5aa93e98e4f896a7331442 Mon Sep 17 00:00:00 2001 From: Frank Lemanschik Date: Fri, 16 Dec 2016 21:24:06 +0000 Subject: [PATCH 3/6] switch tests --- .travis.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 99b5f9c1..63ab01e2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,13 +2,11 @@ language: node_js node_js: "6" addons: firefox: latest - postgresql: '9.4' install: - npm install before_install: - 'export DISPLAY=:99.0' - sh -e /etc/init.d/xvfb start - - "psql -c 'create database bitballs;' -U postgres" before_deploy: - 'git config --global user.email "jan@bitovi.com"' - 'git config --global user.name "bitballs deploy bot"' From 8536907aa0501c520764fb3bca0475809b547e03 Mon Sep 17 00:00:00 2001 From: Frank Lemanschik Date: Fri, 16 Dec 2016 21:14:38 +0000 Subject: [PATCH 4/6] Added: sqllite --- database.json | 6 +++- migrations/20150801045523-players.js | 2 +- migrations/20150804053921-add-stats.js | 9 +++--- migrations/20150809023413-add-stats-time.js | 15 ---------- migrations/20150816063154-add-users.js | 11 ++++++- migrations/20160301185116-required-fields.js | 31 -------------------- migrations/20160307152540-validate-emails.js | 24 --------------- migrations/20160313205522-team-ints.js | 21 ------------- models/bookshelf.js | 12 +++++++- 9 files changed, 32 insertions(+), 99 deletions(-) delete mode 100644 migrations/20150809023413-add-stats-time.js delete mode 100644 migrations/20160301185116-required-fields.js delete mode 100644 migrations/20160307152540-validate-emails.js delete mode 100644 migrations/20160313205522-team-ints.js diff --git a/database.json b/database.json index 50745866..a7d77b21 100644 --- a/database.json +++ b/database.json @@ -1,5 +1,9 @@ { - "dev": "postgres://localhost:5432/bitballs", + "dev": { + "driver": "sqlite3", + "filename": "sqlite.db" + }, + "test": "postgres://localhost:5432/bitballs", "prod": { "ENV": "DATABASE_URL", "driver": "pg" diff --git a/migrations/20150801045523-players.js b/migrations/20150801045523-players.js index ba9cd05a..d89d28b5 100644 --- a/migrations/20150801045523-players.js +++ b/migrations/20150801045523-players.js @@ -1,7 +1,7 @@ exports.up = function(db, callback) { db.createTable('players', { id: { type: 'int', primaryKey: true, autoIncrement: true }, - name: 'string', + name: { type: 'string', notNull: true }, weight: 'int', height: 'int', birthday: 'date', diff --git a/migrations/20150804053921-add-stats.js b/migrations/20150804053921-add-stats.js index 1c8f2548..1069ecee 100644 --- a/migrations/20150804053921-add-stats.js +++ b/migrations/20150804053921-add-stats.js @@ -4,7 +4,7 @@ exports.up = function(db, callback) { async.series([ db.createTable.bind(db, 'tournaments', { id: { type: 'int', primaryKey: true, autoIncrement: true }, - date: 'date' + date: { type: 'date', notNull: true }, }), db.createTable.bind(db, 'teams', { id: { type: 'int', primaryKey: true, autoIncrement: true }, @@ -22,13 +22,15 @@ exports.up = function(db, callback) { round: 'string', court: 'string', videoUrl: 'string', - homeTeamId: 'string', - awayTeamId: 'string' + homeTeamId: 'int', + awayTeamId: 'int' }), db.createTable.bind(db, 'stats', { id: { type: 'int', primaryKey: true, autoIncrement: true }, gameId: 'int', playerId: 'int', + time: { type: 'int' }, + value: {type: 'int'}, type: 'string' }) ], callback); @@ -42,4 +44,3 @@ exports.down = function(db, callback) { db.dropTable.bind(db, 'stats') ], callback); }; - diff --git a/migrations/20150809023413-add-stats-time.js b/migrations/20150809023413-add-stats-time.js deleted file mode 100644 index 0e9bb4a1..00000000 --- a/migrations/20150809023413-add-stats-time.js +++ /dev/null @@ -1,15 +0,0 @@ -var async = require('async'); - -exports.up = function(db, callback) { - async.series([ - db.addColumn.bind(db, "stats","time",{type: 'int'}), - db.addColumn.bind(db, "stats","value",{type: 'int'}) - ], callback); -}; - -exports.down = function(db, callback) { - async.series([ - db.removeColumn.bind(db, "stats","time"), - db.removeColumn.bind(db, "stats","value") - ], callback); -}; diff --git a/migrations/20150816063154-add-users.js b/migrations/20150816063154-add-users.js index ac315bd2..9bed887f 100644 --- a/migrations/20150816063154-add-users.js +++ b/migrations/20150816063154-add-users.js @@ -2,8 +2,17 @@ exports.up = function(db, callback) { db.createTable('users', { id: { type: 'int', primaryKey: true, autoIncrement: true }, name: 'string', - password: 'string', + password: { type: 'string', notNull: true }, email: {type: 'string', unique: true}, + verificationHash: { + type: "string", + length: 100 + }, + verified: { + type: "boolean", + notNull: true, + defaultValue: false + }, isAdmin: 'boolean' }, callback); }; diff --git a/migrations/20160301185116-required-fields.js b/migrations/20160301185116-required-fields.js deleted file mode 100644 index f722c71f..00000000 --- a/migrations/20160301185116-required-fields.js +++ /dev/null @@ -1,31 +0,0 @@ -var async = require('async'); - -exports.up = function(db, callback) { - async.series([ - db.changeColumn.bind(db, 'players', 'name', { - notNull: true - }), - db.changeColumn.bind(db, 'users', 'password', { - notNull: true - }), - db.changeColumn.bind(db, 'tournaments', 'date', { - notNull: true - }) - ], - callback); -}; - -exports.down = function(db, callback) { - async.series([ - db.changeColumn.bind(db, 'players', 'name', { - notNull: false - }), - db.changeColumn.bind(db, 'users', 'password', { - notNull: false - }), - db.changeColumn.bind(db, 'tournaments', 'date', { - notNull: false - }) - ], - callback); -}; diff --git a/migrations/20160307152540-validate-emails.js b/migrations/20160307152540-validate-emails.js deleted file mode 100644 index 21c8c023..00000000 --- a/migrations/20160307152540-validate-emails.js +++ /dev/null @@ -1,24 +0,0 @@ -var async = require('async'); - -exports.up = function(db, callback) { - async.series([ - db.addColumn.bind(db, 'users', 'verified', { - type: "boolean", - notNull: true, - defaultValue: false - }), - db.addColumn.bind(db, 'users', 'verificationHash', { - type: "string", - length: 100 - }) - ], - callback); -}; - -exports.down = function(db, callback) { - async.series([ - db.removeColumn.bind(db, 'users', 'verified' ), - db.removeColumn.bind(db, 'users', 'verificationHash' ) - ], - callback); -}; diff --git a/migrations/20160313205522-team-ints.js b/migrations/20160313205522-team-ints.js deleted file mode 100644 index b8b8090c..00000000 --- a/migrations/20160313205522-team-ints.js +++ /dev/null @@ -1,21 +0,0 @@ -var async = require('async'); - -exports.up = function(db, callback) { - async.series([ - db.runSql.bind(db, 'ALTER TABLE games ALTER COLUMN "homeTeamId" TYPE integer USING "homeTeamId"::numeric'), - db.runSql.bind(db, 'ALTER TABLE games ALTER COLUMN "awayTeamId" TYPE integer USING "awayTeamId"::numeric') - ], - callback); -}; - -exports.down = function(db, callback) { - async.series([ - db.changeColumn.bind(db, 'games', 'homeTeamId', { - type: 'string' - }), - db.changeColumn.bind(db, 'games', 'awayTeamId', { - type: 'string' - }) - ], - callback); -}; diff --git a/models/bookshelf.js b/models/bookshelf.js index e27e7266..6f57e9f8 100644 --- a/models/bookshelf.js +++ b/models/bookshelf.js @@ -7,8 +7,18 @@ var connectionString = typeof dbEnvironmentConfig === 'string' ? dbEnvironmentConfig : process.env[dbEnvironmentConfig.ENV]; +if (typeof dbEnvironmentConfig.filename === 'string') { + connectionString = { + filename: dbEnvironmentConfig.filename + } + // Creates the database if needed + var driver = require(dbEnvironmentConfig.driver).verbose(); + var db = new driver.Database(dbEnvironmentConfig.filename); +} + + var knex = require('knex')({ - client: 'pg', + client: dbEnvironmentConfig.driver, connection: connectionString }); From 782c95f2253c9b39b4b84fa64c9e5f1a6d99f8ef Mon Sep 17 00:00:00 2001 From: Frank Lemanschik Date: Fri, 16 Dec 2016 21:21:38 +0000 Subject: [PATCH 5/6] fix --- models/bookshelf.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/models/bookshelf.js b/models/bookshelf.js index 6f57e9f8..5b5e6255 100644 --- a/models/bookshelf.js +++ b/models/bookshelf.js @@ -10,10 +10,10 @@ var connectionString = typeof dbEnvironmentConfig === 'string' ? if (typeof dbEnvironmentConfig.filename === 'string') { connectionString = { filename: dbEnvironmentConfig.filename - } + }; // Creates the database if needed var driver = require(dbEnvironmentConfig.driver).verbose(); - var db = new driver.Database(dbEnvironmentConfig.filename); + new driver.Database(dbEnvironmentConfig.filename); } From 51e7175a649adeeec8d6eb647e4a43123ef28bc3 Mon Sep 17 00:00:00 2001 From: Frank Lemanschik Date: Fri, 16 Dec 2016 21:24:06 +0000 Subject: [PATCH 6/6] switch tests --- .travis.yml | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/.travis.yml b/.travis.yml index d1e1c394..8d7d6cd5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,23 +3,21 @@ node_js: '6' sudo: required dist: trusty addons: - firefox: 52.3.0 - postgresql: '9.4' + firefox: latest install: -- npm install + - npm install before_install: -- export DISPLAY=:99.0 -- sh -e /etc/init.d/xvfb start -- psql -c 'create database bitballs;' -U postgres + - 'export DISPLAY=:99.0' + - sh -e /etc/init.d/xvfb start script: -- sudo sh -c 'dbus-uuidgen > /etc/machine-id' + - sudo sh -c 'dbus-uuidgen > /etc/machine-id' before_deploy: -- git config --global user.email "justin@bitovi.com" -- git config --global user.name "bitballs deploy bot" -- node public/build -- git add public/dist/ --force -- git commit -m "Updating build." -- node_modules/.bin/firebase deploy --token "$FIREBASE_TOKEN" + - git config --global user.email "justin@bitovi.com" + - git config --global user.name "bitballs deploy bot" + - node public/build + - git add public/dist/ --force + - git commit -m "Updating build." + - node_modules/.bin/firebase deploy --token "$FIREBASE_TOKEN" deploy: skip_cleanup: true provider: heroku