Move Author import to upgrade function to prevent potential downgrade issue

This commit is contained in:
Nicholas Wallace 2026-05-13 17:09:46 -07:00
parent 68eb48bef8
commit 5850140369

View file

@ -50,7 +50,7 @@ async function removeIndexIfPresent(queryInterface, logger, tableName, indexName
await queryInterface.removeIndex(tableName, indexName) await queryInterface.removeIndex(tableName, indexName)
} }
async function backfillAuthorSearchName(queryInterface, logger, transaction, offset = 0) { async function backfillAuthorSearchName(queryInterface, logger, transaction, Author, offset = 0) {
while (true) { while (true) {
const authors = await queryInterface.sequelize.query(`SELECT id, name FROM ${AUTHORS_TABLE} ORDER BY id ASC LIMIT :limit OFFSET :offset`, { const authors = await queryInterface.sequelize.query(`SELECT id, name FROM ${AUTHORS_TABLE} ORDER BY id ASC LIMIT :limit OFFSET :offset`, {
replacements: { limit: 500, offset }, replacements: { limit: 500, offset },
@ -217,6 +217,7 @@ async function refreshLibraryItemAuthorNames(queryInterface, transaction) {
async function up({ context: { queryInterface, logger } }) { async function up({ context: { queryInterface, logger } }) {
logger.info(`${loggerPrefix} UPGRADE BEGIN: ${migrationName}`) logger.info(`${loggerPrefix} UPGRADE BEGIN: ${migrationName}`)
const Author = require('../models/Author')
const tableDescription = await queryInterface.describeTable(AUTHORS_TABLE) const tableDescription = await queryInterface.describeTable(AUTHORS_TABLE)
await queryInterface.sequelize.transaction(async (transaction) => { await queryInterface.sequelize.transaction(async (transaction) => {
@ -250,7 +251,7 @@ async function up({ context: { queryInterface, logger } }) {
) )
} }
await backfillAuthorSearchName(queryInterface, logger, transaction, 0) await backfillAuthorSearchName(queryInterface, logger, transaction, Author, 0)
await mergeDuplicateAuthors(queryInterface, logger, transaction) await mergeDuplicateAuthors(queryInterface, logger, transaction)
await cleanupDuplicateBookAuthors(queryInterface, transaction) await cleanupDuplicateBookAuthors(queryInterface, transaction)
await refreshLibraryItemAuthorNames(queryInterface, transaction) await refreshLibraryItemAuthorNames(queryInterface, transaction)