bif-doc-func-new-project - add a new project to an update
0.1.0_25 (2014-06-14)
#!sqlite BEGIN; INSERT INTO updates(...); INSERT INTO func_new_project( update_id, -- integer NOT NULL, id, -- integer NOT NULL, parent_id, -- integer, name, -- varchar(40), title -- varchar(1024) NOT NULL DEFAULT '' ) VALUES (...); INSERT INTO func_new_project_status(...); INSERT INTO func_update_project(...); INSERT INTO func_merge_updates(...); COMMIT;
The func_new_project() function creates a new project in the repository against an in-progress update #1 by taking the following actions:
A row is inserted into the topics table with a SHA1 hash of the values resulting in the project/topic UUID.
A row is inserted into the projects table.
Update #2 is started by inserting a new row into the updates table.
A row is inserted into hub_deltas against update #2 for the local hub with project_id set to topics.id / projects.id, which kicks of the following trigger actions:
A row is inserted into hub_related_projects connecting the project to the local hub.
A row is inserted into hub_related_updates connecting the update to the local hub, which kicks off the following trigger actions:
A row is inserted into hub_related_updates_merkle taking into account the new update #2.
A row is inserted into hub_tomerge but probably keeps zero values.
A row is inserted into project_deltas against update #1, which kicks off the following trigger actions:
A row is inserted into projects_tomerge.
A row is inserted into project_related_updates connecting update #1 to the project, which kicks off the following trigger actions:
A row is inserted into project_related_updates_merkle taking into account the new update #1.
If project_delta.hub_uuid exists in the repository then every project-only update from project_related_updates is added to hub_related_updates
The enclosing transaction will fail with a foreign key violation unless at least one call to func_new_project_status() is also made and a row is inserted into project_deltas resulting in projects.status_id containing a valid foreign key value into the project_status table.
projects.status_id
bif-doc-table-updates, bif-doc-table-topics, bif-doc-table-projects, bif-doc-func-new-project-status, bif-doc-table-project-updates, bif-doc-func-merge-updates
Mark Lawrence <nomad@null.net>
Copyright 2013-2014 Mark Lawrence <nomad@null.net>
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
To install App::bif, copy and paste the appropriate command in to your terminal.
cpanm
cpanm App::bif
CPAN shell
perl -MCPAN -e shell install App::bif
For more information on module installation, please visit the detailed CPAN module installation guide.