mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-01-20 22:42:53 -05:00
Added database migration for amp -> comment_id rename
refs #9742 - rename column from amp -> comment_id - iterate over all posts and ensure we use the resource id or the original amp value - provide down hook to undo this change
This commit is contained in:
parent
050e026f8b
commit
ed0dc191b2
2 changed files with 68 additions and 0 deletions
|
@ -0,0 +1,36 @@
|
||||||
|
const common = require('../../../../lib/common'),
|
||||||
|
table = 'posts',
|
||||||
|
columnNameOld = 'amp',
|
||||||
|
columnNameNew = 'comment_id',
|
||||||
|
message1 = `Renaming column ${columnNameOld} to ${columnNameNew}`,
|
||||||
|
message2 = `Renaming column ${columnNameNew} to ${columnNameOld}`;
|
||||||
|
|
||||||
|
module.exports.up = function renameAmpColumn(options) {
|
||||||
|
const connection = options.connection;
|
||||||
|
|
||||||
|
common.logging.info(message1);
|
||||||
|
|
||||||
|
return connection.schema.hasColumn(table, columnNameOld)
|
||||||
|
.then((exists) => {
|
||||||
|
if (exists) {
|
||||||
|
return connection.schema.table(table, function (t) {
|
||||||
|
t.renameColumn(columnNameOld, columnNameNew);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports.down = function renameCommentIdColumn(options) {
|
||||||
|
let connection = options.connection;
|
||||||
|
|
||||||
|
common.logging.info(message2);
|
||||||
|
|
||||||
|
return connection.schema.hasColumn(table, columnNameNew)
|
||||||
|
.then((exists) => {
|
||||||
|
if (exists) {
|
||||||
|
return connection.schema.table(table, function (t) {
|
||||||
|
t.renameColumn(columnNameNew, columnNameOld);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
32
core/server/data/migrations/versions/2.0/2-update-posts.js
Normal file
32
core/server/data/migrations/versions/2.0/2-update-posts.js
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
const _ = require('lodash'),
|
||||||
|
Promise = require('bluebird'),
|
||||||
|
common = require('../../../../lib/common'),
|
||||||
|
models = require('../../../../models'),
|
||||||
|
message1 = 'Updating post data (comment_id)';
|
||||||
|
|
||||||
|
module.exports.config = {
|
||||||
|
transaction: true
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports.up = function updatePosts(options) {
|
||||||
|
const postAllColumns = ['id', 'comment_id'];
|
||||||
|
|
||||||
|
let localOptions = _.merge({
|
||||||
|
context: {internal: true}
|
||||||
|
}, options);
|
||||||
|
|
||||||
|
common.logging.info(message1);
|
||||||
|
|
||||||
|
return models.Post.findAll(_.merge({columns: postAllColumns}, localOptions))
|
||||||
|
.then(function (posts) {
|
||||||
|
return Promise.map(posts.models, function (post) {
|
||||||
|
if (post.get('comment_id')) {
|
||||||
|
return Promise.resolve();
|
||||||
|
}
|
||||||
|
|
||||||
|
return models.Post.edit({
|
||||||
|
comment_id: post.id
|
||||||
|
}, _.merge({id: post.id}, localOptions));
|
||||||
|
}, {concurrency: 100});
|
||||||
|
});
|
||||||
|
};
|
Loading…
Add table
Reference in a new issue