35 lines
963 B
JavaScript
35 lines
963 B
JavaScript
exports.up = async function(knex) {
|
|
await knex.raw(`
|
|
DROP INDEX unique_actor_slugs;
|
|
CREATE UNIQUE INDEX unique_actor_slugs ON actors (slug, entry_id) WHERE entity_id IS NULL;
|
|
`);
|
|
|
|
await knex.schema.alterTable('actors', (table) => {
|
|
table.boolean('allow_global_match');
|
|
table.text('comment');
|
|
});
|
|
};
|
|
|
|
exports.down = async function(knex) {
|
|
const dupes = await knex('actors')
|
|
.select('name', 'slug', knex.raw('count(*) as count'))
|
|
.whereNull('entity_id')
|
|
.groupBy('name', 'slug')
|
|
.havingRaw('count(*) > 1')
|
|
.orderBy('count', 'desc');
|
|
|
|
if (dupes.length > 0) {
|
|
console.log('DUPES\n', dupes.map((actor) => `${actor.name} ${actor.slug} ${actor.count}`).join('\n'));
|
|
}
|
|
|
|
await knex.raw(`
|
|
DROP INDEX unique_actor_slugs;
|
|
CREATE UNIQUE INDEX unique_actor_slugs ON actors (slug) WHERE entity_id IS NULL;
|
|
`);
|
|
|
|
await knex.schema.alterTable('actors', (table) => {
|
|
table.dropColumn('allow_global_match');
|
|
table.dropColumn('comment');
|
|
});
|
|
};
|