]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - server/initializers/migrator.js
Update scripts with postgresql
[github/Chocobozzz/PeerTube.git] / server / initializers / migrator.js
CommitLineData
00d6b0dd
C
1'use strict'
2
3const eachSeries = require('async/eachSeries')
00d6b0dd
C
4const path = require('path')
5
6const constants = require('./constants')
feb4bdfd 7const db = require('./database')
00d6b0dd
C
8const logger = require('../helpers/logger')
9
00d6b0dd
C
10const migrator = {
11 migrate: migrate
12}
13
14function migrate (callback) {
feb4bdfd 15 db.Application.loadSqlSchemaVersion(function (err, actualVersion) {
00d6b0dd
C
16 if (err) return callback(err)
17
18 // If there are a new mongo schemas
feb4bdfd 19 if (!actualVersion || actualVersion < constants.LAST_SQL_SCHEMA_VERSION) {
00d6b0dd
C
20 logger.info('Begin migrations.')
21
22 eachSeries(constants.MONGO_MIGRATION_SCRIPTS, function (entity, callbackEach) {
23 const versionScript = entity.version
24
25 // Do not execute old migration scripts
26 if (versionScript <= actualVersion) return callbackEach(null)
27
28 // Load the migration module and run it
29 const migrationScriptName = entity.script
30 logger.info('Executing %s migration script.', migrationScriptName)
31
32 const migrationScript = require(path.join(__dirname, 'migrations', migrationScriptName))
33 migrationScript.up(function (err) {
34 if (err) return callbackEach(err)
35
36 // Update the new mongo version schema
feb4bdfd 37 db.Application.updateSqlSchemaVersion(versionScript, callbackEach)
00d6b0dd
C
38 })
39 }, function (err) {
40 if (err) return callback(err)
41
feb4bdfd 42 logger.info('Migrations finished. New SQL version schema: %s', constants.LAST_SQL_SCHEMA_VERSION)
00d6b0dd
C
43 return callback(null)
44 })
45 } else {
46 return callback(null)
47 }
48 })
49}
50
51// ---------------------------------------------------------------------------
52
53module.exports = migrator
54