traxxx/migrations/20241103060644_socials.js

36 lines
1.2 KiB
JavaScript

exports.up = async (knex) => {
await knex.schema.alterTable('actors_social', (table) => {
table.dropUnique(['url', 'actor_id', 'profile_id']);
table.dropColumn('profile_id');
table.string('username');
table.unique(['actor_id', 'platform', 'username']);
table.unique(['actor_id', 'url']);
table.datetime('verified_at');
});
await knex.raw('ALTER TABLE actors_social ADD CONSTRAINT actors_url_or_username CHECK (num_nulls(username, url) = 1);');
await knex.raw('ALTER TABLE actors_social ADD CONSTRAINT actors_username_and_platform CHECK (num_nulls(platform, username) = 2 or num_nulls(platform, username) = 0);');
};
exports.down = async (knex) => {
await knex.raw('ALTER TABLE actors_social DROP CONSTRAINT actors_url_or_username;');
await knex.raw('ALTER TABLE actors_social DROP CONSTRAINT actors_username_and_platform;');
await knex.schema.alterTable('actors_social', (table) => {
table.dropUnique(['actor_id', 'platform', 'username']);
table.dropUnique(['actor_id', 'url']);
table.integer('profile_id')
.references('id')
.inTable('actors_profiles');
table.dropColumn('username');
table.dropColumn('verified_at');
table.unique(['url', 'actor_id', 'profile_id']);
});
};