Fixed upsert failing on empty insert array due breaking Knex API change.
This commit is contained in:
parent
64e9efe095
commit
f0b7678444
|
@ -2021,13 +2021,13 @@ const aliases = [
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
exports.seed = knex => Promise.resolve()
|
exports.seed = (knex) => Promise.resolve()
|
||||||
.then(async () => upsert('tags_groups', groups, 'slug', knex))
|
.then(async () => upsert('tags_groups', groups, 'slug', knex))
|
||||||
.then(async () => {
|
.then(async () => {
|
||||||
const groupEntries = await knex('tags_groups').select('*');
|
const groupEntries = await knex('tags_groups').select('*');
|
||||||
const groupsMap = groupEntries.reduce((acc, { id, slug }) => ({ ...acc, [slug]: id }), {});
|
const groupsMap = groupEntries.reduce((acc, { id, slug }) => ({ ...acc, [slug]: id }), {});
|
||||||
|
|
||||||
const tagsWithGroups = tags.map(tag => ({
|
const tagsWithGroups = tags.map((tag) => ({
|
||||||
name: tag.name,
|
name: tag.name,
|
||||||
slug: tag.slug || slugify(tag.name),
|
slug: tag.slug || slugify(tag.name),
|
||||||
description: tag.description,
|
description: tag.description,
|
||||||
|
@ -2042,7 +2042,7 @@ exports.seed = knex => Promise.resolve()
|
||||||
const tagEntries = await knex('tags').select('*').where({ alias_for: null });
|
const tagEntries = await knex('tags').select('*').where({ alias_for: null });
|
||||||
const tagsMap = tagEntries.reduce((acc, { id, slug }) => ({ ...acc, [slug]: id }), {});
|
const tagsMap = tagEntries.reduce((acc, { id, slug }) => ({ ...acc, [slug]: id }), {});
|
||||||
|
|
||||||
const tagAliases = aliases.map(alias => ({
|
const tagAliases = aliases.map((alias) => ({
|
||||||
name: alias.name,
|
name: alias.name,
|
||||||
alias_for: tagsMap[alias.for],
|
alias_for: tagsMap[alias.for],
|
||||||
secondary: !!alias.secondary,
|
secondary: !!alias.secondary,
|
||||||
|
|
|
@ -33,8 +33,8 @@ async function upsert(table, items, identifier = ['id'], _knex) {
|
||||||
logger.debug(`${table}: Updating ${update.length}`);
|
logger.debug(`${table}: Updating ${update.length}`);
|
||||||
|
|
||||||
const [inserted, updated] = await Promise.all([
|
const [inserted, updated] = await Promise.all([
|
||||||
knex(table).returning('*').insert(insert),
|
insert.length > 0 ? knex(table).returning('*').insert(insert) : [],
|
||||||
knex.transaction(async (trx) => Promise.all(update.map((item) => {
|
update.length > 0 ? knex.transaction(async (trx) => Promise.all(update.map((item) => {
|
||||||
const clause = identifiers.reduce((acc, identifierX) => ({ ...acc, [identifierX]: item[identifierX] }), {});
|
const clause = identifiers.reduce((acc, identifierX) => ({ ...acc, [identifierX]: item[identifierX] }), {});
|
||||||
|
|
||||||
return trx
|
return trx
|
||||||
|
@ -42,7 +42,7 @@ async function upsert(table, items, identifier = ['id'], _knex) {
|
||||||
.update(item)
|
.update(item)
|
||||||
.into(table)
|
.into(table)
|
||||||
.returning('*');
|
.returning('*');
|
||||||
}))),
|
}))) : [],
|
||||||
]);
|
]);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|
Loading…
Reference in New Issue