-function migrate (callback) {
- db.Application.loadMigrationVersion(function (err, actualVersion) {
- if (err) return callback(err)
+function migrate (finalCallback) {
+ waterfall([
+
+ function checkApplicationTableExists (callback) {
+ db.sequelize.getQueryInterface().showAllTables().asCallback(function (err, tables) {
+ if (err) return callback(err)
+
+ // No tables, we don't need to migrate anything
+ // The installer will do that
+ if (tables.length === 0) return finalCallback(null)
+
+ return callback(null)
+ })
+ },
+
+ function loadMigrationVersion (callback) {
+ db.Application.loadMigrationVersion(callback)
+ },
+
+ function createMigrationRowIfNotExists (actualVersion, callback) {
+ if (actualVersion === null) {
+ db.Application.create({
+ migrationVersion: 0
+ }, function (err) {
+ return callback(err, 0)
+ })
+ }