mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-01-27 22:49:56 -05:00
639c0d0627
closes #1398 closes #1399 closes #1400 - added schema.js with database version '000' - refactored migration to use schema.js - if new table is added to schema.js and databaseVersion is increased, table will be added - if new table is deleted to schema.js and databaseVersion is increased, table will be deleted - alter table from issue #1400 is delayed until knex supports column modification - changed import pre checks to work again (will be refactored separately) - added basic PostgreSQL support (Attention: not supported/tested) - changed error handling in server.js
41 lines
No EOL
1.2 KiB
JavaScript
41 lines
No EOL
1.2 KiB
JavaScript
var when = require('when'),
|
|
_ = require('underscore'),
|
|
migration = require('../migration'),
|
|
knex = require('../../models/base').knex,
|
|
schema = require('../schema'),
|
|
|
|
exporter;
|
|
|
|
exporter = function () {
|
|
var tablesToExport = _.keys(schema);
|
|
|
|
return when.join(migration.getDatabaseVersion(), tablesToExport).then(function (results) {
|
|
var version = results[0],
|
|
tables = results[1],
|
|
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: 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 = exporter; |