Ghost/core/server/data/export/002.js
Hannah Wolfe 338109c762 Data models import, export, and reset for 002
- added line to index.js to set node_env to development if it is not set
 - fixed a small bug with the persistent notifications and used them on debug page from server side
 - added 002 files to manage export and import for 002
 - 002 import is somewhat smarter than 001, merging settings (except version), replacing user & clearing primary keys
 - added reset to models and migration, which does the down operation the same way that init does the up operation
 - import and reset clear session & redirect to login / signup
 - additional unit tests
2013-08-05 13:56:30 +01:00

49 lines
1.2 KiB
JavaScript

var _ = require("underscore"),
when = require("when"),
knex = require('../../models/base').Knex,
Exporter002;
Exporter002 = function () {
this.version = "002";
};
Exporter002.prototype.exportData = function () {
var self = this,
tables = [
'posts', 'users', 'roles', 'roles_users', 'permissions',
'permissions_roles', 'settings', 'tags', 'posts_tags',
'custom_data', 'posts_custom_data'
],
selectOps = _.map(tables, function (name) {
return knex(name).select();
});
return when.all(selectOps).then(function (tableData) {
var exportData = {
meta: {
exported_on: new Date().getTime(),
version: self.version
},
data: {
// Filled below
}
};
_.each(tables, function (name, i) {
exportData.data[name] = tableData[i];
});
return when.resolve(exportData);
}, function (err) {
console.log("Error exporting data: " + err);
});
};
module.exports = {
// Make available for unit tests
Exporter002: Exporter002,
exportData: function () {
return new Exporter002().exportData();
}
};