mirror of
https://github.com/HackPlan/RootPanel.git
synced 2026-03-26 22:16:28 +08:00
fix migrate
This commit is contained in:
@@ -12,26 +12,38 @@ config = require '../config'
|
||||
{user, password, host, name} = config.mongodb
|
||||
mongodb_uri = "mongodb://#{user}:#{password}@#{host}/#{name}"
|
||||
|
||||
latest_version = require('../package.json').version
|
||||
|
||||
migrations = _.map fs.readdirSync("#{__dirname}/database"), (filename) ->
|
||||
return filename.match(/v(\d+\.\d+\.\d+)\.coffee/)[1]
|
||||
|
||||
migrations.sort (a, b) ->
|
||||
if semver.gt a, b
|
||||
return 1
|
||||
|
||||
if semver.lt a, b
|
||||
return -1
|
||||
|
||||
return 0
|
||||
|
||||
MongoClient.connect mongodb_uri, (err, db) ->
|
||||
throw err if err
|
||||
|
||||
migrations = _.map fs.readdirSync("#{__dirname}/database"), (filename) ->
|
||||
return filename.match(/v(\d+\.\d+\.\d+)\.coffee/)[1]
|
||||
cOption = db.collection 'options'
|
||||
|
||||
migrations.sort (a, b) ->
|
||||
if semver.gt a, b
|
||||
return 1
|
||||
|
||||
if semver.lt a, b
|
||||
return -1
|
||||
|
||||
return 0
|
||||
|
||||
db.collection('options').findOne
|
||||
cOption.findOne
|
||||
key: 'db_version'
|
||||
, (err, result) ->
|
||||
latest_version = require('../package.json').version
|
||||
current_version = result?.version ? latest_version
|
||||
, (err, db_version) ->
|
||||
unless db_version
|
||||
return cOption.insert
|
||||
key: 'db_version'
|
||||
version: latest_version
|
||||
, (err) ->
|
||||
throw err if err
|
||||
console.log 'Created migration data'
|
||||
process.exit 0
|
||||
|
||||
current_version = db_version.version
|
||||
|
||||
async.eachSeries migrations, (migration, callback) ->
|
||||
if semver.gt(migration, current_version) and semver.lte(migration, latest_version)
|
||||
@@ -43,12 +55,9 @@ MongoClient.connect mongodb_uri, (err, db) ->
|
||||
db.collection('options').update
|
||||
key: 'db_version'
|
||||
,
|
||||
key: 'db_version'
|
||||
version: migration
|
||||
,
|
||||
upsert: true
|
||||
, (err) ->
|
||||
callback err
|
||||
$set:
|
||||
version: migration
|
||||
, callback
|
||||
|
||||
else
|
||||
callback()
|
||||
|
||||
@@ -4,7 +4,7 @@ if process.env.COV_TEST == 'true'
|
||||
require('coffee-coverage').register
|
||||
path: 'relative'
|
||||
basePath: "#{__dirname}/../.."
|
||||
exclude: ['test', 'node_modules', '.git', 'sample', 'core/static']
|
||||
exclude: ['test', 'node_modules', '.git', 'sample', 'core/static', 'migration/database']
|
||||
|
||||
global._ = require 'underscore'
|
||||
global.fs = require 'fs'
|
||||
|
||||
Reference in New Issue
Block a user