Help document
This page is provided for help. It is not normally part of the installation.
When to use this page?
This is a help document in case you are renaming the key of a space, or when attempting to export-then-import a space.
Exporting a space to another instance
Using Confluence's build-in XML export-import
When exporting a space, we don't include the requirements in the export. Therefore, the following information will be lost if you only use Confluence's built-in XML export-import:
- Baselines will be lost,
- Links from other spaces will be lost,
- Links from Jira will be lost. They will still appear on the Jira side, but will reach a 404 page in Confluence. They won't appear on the new requirements in Confluence.
After you reimport, please use Requirement Yogi's reindexation in the space administration.
If you need to keep baselines, links from other spaces and from Jira, then proceed to the next title.
Moving data manually to another Confluence instance
- Our requirement is that the following tables are correct:
- AO_32F7CE_DBBASELINE
- AO_32F7CE_DBREQUIREMENT - Simple import
- AO_32F7CE_DBPROPERTY- Simple import (with foreign key to DBREQUIREMENT),
- AO_32F7CE_DBLINK - Don't forget to change the Page IDs and the Jira Applink ID.
- AO_32F7CE_DBDEPENDENCY - Import (with foreign key to DBREQUIREMENT) + references to DBLink.
- Don't forget AO_32F7CE_DBBASELINE, AO_32F7CE_DBTRACEABILITYMATRIX, AO_32F7CE_DBISSUE_TEMPLATE.
- Our other requirement is that tables in Jira correctly match the tables of Confluence:
- AO_42D05A_DBREMOTEREQUIREMENT
- AO_42D05A_DBISSUELINK
- AO_42D05A_DBAUDITTRAIL
- So, the process would be:
- Import a space to the new Confluence,
- Find a way to map old page IDs to new page IDs,
- Import all RY tables, keeping foreign keys,
- Change Applink IDs in DBLink,
- Change Page IDs in DBLink,
- Jira: Before exporting, ensure issue numbers match issue ids, in DBIssueLink,
- Jira: Import all RY tables,
- Jira: After importing, update issue ids to issue numbers in DBIssueLink,
- Jira: Update the Applink IDs in DBRemoteRequirement.
Renaming a space
If you rename a space, our records in the database still point to the older space. Therefore, requirements will appear as non-existing in the new space. You have two choices:
- Use the same method as above (reindexing after importing) but you will lose the same entities as above (baselines, links, Jira links).
- Otherwise, you will have to perform a lot of operations manually, see below.
Places where the space key is mentioned
- In search queries, for example in the Traceability Matrix,
- In the "requirement" macro, if it represents a link to a requirement in another space,
- In various requirement tables,
- In Jira issues.
How to modify the XML of pages
There is no "clean" way of doing that, you will have to issue SQL instructions.
Requirement macros are as follow:
<ac:structured-macro ac:name="requirement" ac:schema-version="1"> <ac:parameter ac:name="type">LINK</ac:parameter> <ac:parameter ac:name="spaceKey">ds</ac:parameter> <!-- spaceKey is optional, only present if the macro is in another space --> <ac:parameter ac:name="key">REQ-001</ac:parameter> <ac:parameter ac:name="baseline">3</ac:parameter> </ac:structured-macro>
Don't forget the requirement-report macros:
<ac:structured-macro ac:name="requirement-report" ac:schema-version="1"> <ac:parameter ac:name="query">@MyProperty = 'Something' AND space = 'ds'</ac:parameter> ... some other parameters ... </ac:structured-macro>
To perform an accurate migration, you will have to write an XML parser.
Tables in the Confluence database
You will have to modify the following tables in the database, which contain the spaceKey parameter:
- AO_32F7CE_AOREQUIREMENT
- AO_32F7CE_AODEPENDENCY
- AO_32F7CE_AOBASELINE
- AO_32F7CE_AOISSUE_TEMPLATE
- AO_32F7CE_AOINTEGRATION_QUEUE, inside the JSON column. You will have to write a JSON parser or, more simply, to purge the queue before starting !
- BANDANA, keys starting with com.playsql.requirementyogi.* – It is a generic table for all settings in Confluence. Check that saved traceability matrixes don't contain a space key.
The queue is a queue of messages between Confluence and Jira. As said above, one simple solution is to stop modifying pages, going to the Requirement Yogi administration, and clicking "Send all messages to Jira". This way, existing messages will be sent end messages above 1000 will be deleted.
Note that if you also change the Jira application, you will also have to change AO_32F7CE_AOINTEGRATION to update the Applink ID. This is also documented, in Admin - Changing Applinks.
Tables in the Jira database
- AO_42D05A_REMOTE_REQUIREMENT, change the spaceKey.
- AO_42D05A_AOQUEUE_MESSAGE (starting from version 2.6, not published at the time of writing), change the spaceKey inside of the JSON column. More simply, send all messages from the RY administration in Jira before starting.
If you also change the Applink to Confluence, you will have to change the Applink ID in:
- AO_42D05A_REMOTE_REQUIREMENT, change the spaceKey.
- The plugin settings table, check all keys starting with "com.playsql.requirementyogijira."
Summary
As a summary, there are 5 types of places where you will have to perform modifications:
- XHTML of pages in Confluence (requirement and requirment-report macros),
- AO tables in Confluence,
- BANDANA table in Confluence,
- AO tables in Jira,
- Settings table in Jira.