diff --git a/database/src/migrations/20210225205948_biohub_release_0.11.ts b/database/src/migrations/20210225205948_biohub_release_0.11.ts index 70eb03ee52..bccf59f762 100644 --- a/database/src/migrations/20210225205948_biohub_release_0.11.ts +++ b/database/src/migrations/20210225205948_biohub_release_0.11.ts @@ -31,6 +31,7 @@ export async function up(knex: Knex): Promise { const tr_project_funding_source = fs.readFileSync( path.join(__dirname, 'release.0.11', 'tr_project_funding_source.sql') ); + const api_delete_project = fs.readFileSync(path.join(__dirname, 'release.0.11', 'api_delete_project.sql')); const populate_first_nations = fs.readFileSync(path.join(__dirname, 'release.0.11', 'populate_first_nations.sql')); const populate_climate_change_initiatives = fs.readFileSync( @@ -76,6 +77,7 @@ export async function up(knex: Knex): Promise { ${tr_journal_trigger} ${project_journal_triggers} ${tr_project_funding_source} + ${api_delete_project} -- populate look up tables set search_path = biohub; diff --git a/database/src/migrations/release.0.11/api_delete_project.sql b/database/src/migrations/release.0.11/api_delete_project.sql new file mode 100644 index 0000000000..cdf44d24b0 --- /dev/null +++ b/database/src/migrations/release.0.11/api_delete_project.sql @@ -0,0 +1,38 @@ +-- api_delete_project.sql +drop procedure if exists api_delete_project; + +create or replace procedure api_delete_project(__project_id project.id%type) +language plpgsql +security definer +as +$$ +-- ******************************************************************* +-- Procedure: api_delete_project +-- Purpose: deletes a project and dependencies +-- +-- MODIFICATION HISTORY +-- Person Date Comments +-- ---------------- ----------- -------------------------------------- +-- charlie.garrettjones@quartech.com +-- 2021-04-19 initial release +-- ******************************************************************* +declare + +begin + delete from focal_species where p_id = __project_id; + delete from ancillary_species where p_id = __project_id; + delete from stakeholder_partnership where p_id = __project_id; + delete from project_activity where p_id = __project_id; + delete from project_climate_initiative where p_id = __project_id; + delete from project_region where p_id = __project_id; + delete from project_permit where p_id = __project_id; + delete from project_management_actions where p_id = __project_id; + delete from project_funding_source where p_id = __project_id; + delete from project_iucn_action_classification where p_id = __project_id; + delete from project_attachment where p_id = __project_id; + delete from project_first_nation where p_id = __project_id; + delete from project_participation where p_id = __project_id; + delete from project where id = __project_id; + +end; +$$;