mirror of
https://git.code.sf.net/p/seeddms/code
synced 2024-11-26 15:32:13 +00:00
some infos about the update
This commit is contained in:
parent
e5376d144d
commit
7c9f5d3819
52
install/update-6.0.0/update.txt
Normal file
52
install/update-6.0.0/update.txt
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
Caution when you update seeddms with workflow mode `advanced`
|
||||||
|
=============================================================
|
||||||
|
|
||||||
|
The previous database layout for tracking the workflow state of a
|
||||||
|
document content was not very well done. It did not allow to run
|
||||||
|
the document through another workflow at a later time, expecially
|
||||||
|
the same workflow, e.g. for a scheduled revision of a document.
|
||||||
|
|
||||||
|
Technical details
|
||||||
|
==================
|
||||||
|
This update modifies the tables tblWorkflowDocumentContent and
|
||||||
|
tblWorkflowLog. It adds a new autoincrement field as a primary key
|
||||||
|
(id) to tblWorkflowDocumentContent and references that field in
|
||||||
|
tblWorkflowLog (workflowdocumentcontent). Till now the two tables
|
||||||
|
where linked by the fields `document`, `version`, and `workflow` which will
|
||||||
|
be replaced by the two new fields. The fields `document`, `version`, and
|
||||||
|
`workflow` will be removed from tblWorkflowLog. tblWorkflowDocumentContent
|
||||||
|
contained just the workflows currently active for a particlar document.
|
||||||
|
From now on the table will also contain finished workflows, which
|
||||||
|
will have the field `state` set to null. This allows to run even the
|
||||||
|
same workflow again and still be able to distinguish the log entries.
|
||||||
|
|
||||||
|
MySQL
|
||||||
|
------
|
||||||
|
|
||||||
|
The update process will first add the new auto incrementing, primary
|
||||||
|
field to tblWorkflowDocumentContent and a referencing field to
|
||||||
|
tblWorkflowLog. It will then fill out the referencing field with the
|
||||||
|
automatically incremented field value from tblWorkflowDocumentContent
|
||||||
|
by joining the two tables with its common fields document, version,
|
||||||
|
and workflow. This will not fill out all referencing field values,
|
||||||
|
because once a workflow has ended the record in
|
||||||
|
tblWorkflowDocumentContent will be deleted and just the records in
|
||||||
|
tblWorkflowLog are kept. The still missing records in
|
||||||
|
tblWorkflowDocumentContent for already completed workflows will be
|
||||||
|
reconstructed from the records in tblWorkflowLog which do not have a
|
||||||
|
reference to tblWorkflowDocumentContent yet. Once that is done the
|
||||||
|
referencing field in tblWorkflowLog can be filled in a second pass.
|
||||||
|
The date of the new records in tblWorkflowDocumentContent will be
|
||||||
|
taken from the last record for that workflow in tblWorkflowLog. The
|
||||||
|
state of the new records will be set null, indicating that this
|
||||||
|
workflow is no longer active.
|
||||||
|
|
||||||
|
SQLite
|
||||||
|
-------
|
||||||
|
|
||||||
|
The update process will first create new table for tblWorkflowDocumentContent
|
||||||
|
containing a new field for the primary key field. It then copies the
|
||||||
|
records from the old table to the new table. The missing records for
|
||||||
|
workflows which has been finished already are recreated from the old
|
||||||
|
table `tblWorkflowLog`. Which is then replaced by a new table having
|
||||||
|
the foreign key to table `tblWorkflowDocumentContent`.
|
Loading…
Reference in New Issue
Block a user