/* MIGRATION TO CREATE THE FEDERATION COMMUNITY TABLES * * This migration creates the `community` and 'communityfederation' tables in the `apollo` database (`gradido_community`). */ /* eslint-disable @typescript-eslint/explicit-module-boundary-types */ /* eslint-disable @typescript-eslint/no-explicit-any */ export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn( 'ALTER TABLE `communities` MODIFY COLUMN `last_announced_at` datetime(3) AFTER `end_point`;', ) await queryFn( 'ALTER TABLE `communities` ADD COLUMN `foreign` tinyint(4) NOT NULL DEFAULT 1 AFTER `id`;', ) await queryFn( 'ALTER TABLE `communities` ADD COLUMN `verified_at` datetime(3) AFTER `last_announced_at`;', ) await queryFn( 'ALTER TABLE `communities` ADD COLUMN `last_error_at` datetime(3) AFTER `verified_at`;', ) } export async function downgrade(queryFn: (query: string, values?: any[]) => Promise>) { // write downgrade logic as parameter of queryFn await queryFn('DELETE FROM `communities` WHERE `last_announced_at` IS NULL;') await queryFn( 'ALTER TABLE `communities` MODIFY COLUMN `last_announced_at` datetime(3) NOT NULL AFTER `end_point`;', ) await queryFn('ALTER TABLE `communities` DROP COLUMN `foreign`;') await queryFn('ALTER TABLE `communities` DROP COLUMN `verified_at`;') await queryFn('ALTER TABLE `communities` DROP COLUMN `last_error_at`;') }