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');
	});
};