mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-25 20:03:12 +03:00
Merged v5.64.0 into main
This commit is contained in:
commit
ff3c3a904b
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "ghost-admin",
|
"name": "ghost-admin",
|
||||||
"version": "5.63.0",
|
"version": "5.64.0",
|
||||||
"description": "Ember.js admin client for Ghost",
|
"description": "Ember.js admin client for Ghost",
|
||||||
"author": "Ghost Foundation",
|
"author": "Ghost Foundation",
|
||||||
"homepage": "http://ghost.org",
|
"homepage": "http://ghost.org",
|
||||||
|
@ -0,0 +1,12 @@
|
|||||||
|
const logging = require('@tryghost/logging');
|
||||||
|
const {createNonTransactionalMigration} = require('../../utils');
|
||||||
|
|
||||||
|
module.exports = createNonTransactionalMigration(
|
||||||
|
async function up(knex) {
|
||||||
|
logging.info('Clearing collections_posts table');
|
||||||
|
await knex('collections_posts').truncate();
|
||||||
|
},
|
||||||
|
async function down() {
|
||||||
|
logging.info('Not doing anything - collections_posts table has been truncated');
|
||||||
|
}
|
||||||
|
);
|
@ -0,0 +1,69 @@
|
|||||||
|
const logging = require('@tryghost/logging');
|
||||||
|
const {default: ObjectID} = require('bson-objectid');
|
||||||
|
const {createTransactionalMigration} = require('../../utils');
|
||||||
|
|
||||||
|
const insertPostCollections = async (knex, collectionId, postIds) => {
|
||||||
|
logging.warn(`Batch inserting ${postIds.length} collection posts for collection ${collectionId}`);
|
||||||
|
|
||||||
|
const collectionPosts = postIds.map((postId) => {
|
||||||
|
return {
|
||||||
|
id: (new ObjectID()).toHexString(),
|
||||||
|
collection_id: collectionId,
|
||||||
|
post_id: postId,
|
||||||
|
sort_order: 0
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
await knex.batchInsert('collections_posts', collectionPosts, 1000);
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = createTransactionalMigration(
|
||||||
|
async function up(knex) {
|
||||||
|
logging.info('Populating built-in collections');
|
||||||
|
|
||||||
|
const existingLatestCollection = await knex('collections')
|
||||||
|
.where({
|
||||||
|
slug: 'latest'
|
||||||
|
})
|
||||||
|
.first();
|
||||||
|
|
||||||
|
if (!existingLatestCollection) {
|
||||||
|
logging.warn('Latest collection does not exists, skipping');
|
||||||
|
} else {
|
||||||
|
const latestPostsRows = await knex('posts')
|
||||||
|
.select('id')
|
||||||
|
.where({
|
||||||
|
type: 'post'
|
||||||
|
});
|
||||||
|
|
||||||
|
const latestPostsIds = latestPostsRows.map(row => row.id);
|
||||||
|
|
||||||
|
await insertPostCollections(knex, existingLatestCollection.id, latestPostsIds);
|
||||||
|
}
|
||||||
|
|
||||||
|
const existingFeaturedCollection = await knex('collections')
|
||||||
|
.where({
|
||||||
|
slug: 'featured'
|
||||||
|
})
|
||||||
|
.first();
|
||||||
|
|
||||||
|
if (!existingFeaturedCollection) {
|
||||||
|
logging.warn('Featured collection does not exist, skipping');
|
||||||
|
} else {
|
||||||
|
const featuredPostsRows = await knex('posts')
|
||||||
|
.select('id')
|
||||||
|
.where({
|
||||||
|
featured: true,
|
||||||
|
type: 'post'
|
||||||
|
});
|
||||||
|
|
||||||
|
const featuredPostsIds = featuredPostsRows.map(row => row.id);
|
||||||
|
|
||||||
|
await insertPostCollections(knex, existingFeaturedCollection.id, featuredPostsIds);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async function down(knex) {
|
||||||
|
logging.info('Clearing collections_posts table');
|
||||||
|
await knex('collections_posts').truncate();
|
||||||
|
}
|
||||||
|
);
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "ghost",
|
"name": "ghost",
|
||||||
"version": "5.63.0",
|
"version": "5.64.0",
|
||||||
"description": "The professional publishing platform",
|
"description": "The professional publishing platform",
|
||||||
"author": "Ghost Foundation",
|
"author": "Ghost Foundation",
|
||||||
"homepage": "https://ghost.org",
|
"homepage": "https://ghost.org",
|
||||||
|
Loading…
Reference in New Issue
Block a user