28 lines
725 B
JavaScript
28 lines
725 B
JavaScript
|
exports.up = async (knex) => {
|
||
|
await knex.schema.alterTable('actors_social', (table) => {
|
||
|
table.integer('profile_id')
|
||
|
.references('id')
|
||
|
.inTable('actors_profiles');
|
||
|
|
||
|
table.dropUnique(['url', 'actor_id']);
|
||
|
table.unique(['url', 'actor_id', 'profile_id']);
|
||
|
});
|
||
|
|
||
|
await knex.raw(`
|
||
|
CREATE UNIQUE INDEX actors_social_url_actor_id_null_unique ON actors_social (url, actor_id) WHERE profile_id IS NULL;
|
||
|
`);
|
||
|
};
|
||
|
|
||
|
exports.down = async (knex) => {
|
||
|
await knex.raw(`
|
||
|
DROP INDEX actors_social_url_actor_id_null_unique;
|
||
|
`);
|
||
|
|
||
|
await knex.schema.alterTable('actors_social', (table) => {
|
||
|
table.dropUnique(['url', 'actor_id', 'profile_id']);
|
||
|
table.unique(['url', 'actor_id']);
|
||
|
|
||
|
table.dropColumn('profile_id');
|
||
|
});
|
||
|
};
|