Introduction

If you are migrating a JIRA server to a new location, and as a result, the URL of the server changes, then you will need to manually repair some data in the database to make Enterprise Tester aware of these changes.

For the purpose of this article, we will assume that from and to URL's for JIRA are:

 

Before you Begin

Before making any changes we suggest that you:

  • Login to Enterprise Tester as an administrator, and configure the defect tracker link(s) being updated to all be disabled (accessed via the Admin tab).
  • Change the URL in each defect tracker to point to the new server and save, this will cause the details to be validated confirming the new server is accessible.
  • Stop IIS, from an Administrator command prompt on the Enterprise Tester server you can execute the following command:  iisreset /stop
  • Backup your Enterprise Tester database.

Updating Incidents

Incidents within the Enterprise Tester database are stored across a number of tables. The table that needs updating when changing the JIRA URL is called "IncidentDetails", and in particular, a column called "TicketKey".

You will need the assistance of your DBA to run these queries against your Enterprise Tester Database.

Database Type

 

Sql Server

UPDATE IncidentDetails
SET TicketUrl = replace(TicketUrl, 'http://jirasvr/', 'http://mycorp.com/jira/')
WHERE TicketUrl IS NOT NULL

Oracle

UPDATE INCIDENTDETAILS
SET TICKETURL = REPLACE(TICKETURL , 'http://jirasvr/', 'http://mycorp.com/jira/')
WHERE TICKETURL IS NOT NULL

MySql

UPDATE IncidentDetails
SET TicketUrl = replace(TicketUrl, 'http://jirasvr/', 'http://mycorp.com/jira/')
WHERE TicketUrl IS NOT NULL

PostgreSql

UPDATE IncidentDetails
SET TicketUrl = replace(TicketUrl, 'http://jirasvr/', 'http://mycorp.com/jira/')
WHERE TicketUrl IS NOT NULL

 

Updating Requirements

For requirements synchronized to JIRA, the JIRA information is stored in a number of  tables.  As with incidents above, it is necessary to search and replace the values of the old server name with the new server name. 

You will need the assistance of your DBA to run these queries against your Enterprise Tester Database.


SQL Server

 

ExternalSystemReferencesUPDATE ExternalSystemReferences
SET ExternalUrl= replace(ExternalUrl, 'http://jirasvr/', 'http://mycorp.com/jira/')
WHERE ExternalUrl IS NOT NULL

ExternalIconUrl

UPDATE ExternalSystemReferences
SET ExternalIconUrl= replace(ExternalIconUrl, 'http://jirasvr/', 'http://mycorp.com/jira/')
WHERE ExternalIconUrl IS NOT NULL

ExternalStatusIconUrl

 

UPDATE ExternalSystemReferences
SET ExternalStatusIconUrl= replace(ExternalStatusIconUrl, 'http://jirasvr/', 'http://mycorp.com/jira/')
WHERE ExternalStatusIconUrl IS NOT NULL

ExternalStatusIconLink

 

UPDATE ExternalSystemReferences
SET ExternalStatusIconLink= replace(ExternalStatusIconLink, 'http://jirasvr/', 'hhttp://mycorp.com/jira/')
WHERE ExternalStatusIconLink IS NOT NULL

 

Oracle

 

ExternalSystemReferencesUPDATE EXTERNALSYSTEMREFERENCES
SET EXTERNALURL = REPLACE(EXTERNALURL , 'http://jirasvr/', 'http://mycorp.com/jira/')
WHERE EXTERNALURL IS NOT NULL

ExternalIconUrl

UPDATE EXTERNALSYSTEMREFERENCES
SET EXTERNALICONURL = REPLACE(EXTERNALICONURL , 'http://jirasvr/', 'http://mycorp.com/jira/')
WHERE EXTERNALICONURL IS NOT NULL

ExternalStatusIconUrl

 

UPDATE EXTERNALSYSTEMREFERENCES
SET EXTERNALSTATUSICONURL = REPLACE(EXTERNALSTATUSICONURL , 'http://jirasvr/', 'http://mycorp.com/jira/')
WHERE EXTERNALSTATUSICONURL IS NOT NULL

ExternalStatusIconLink

 

UPDATE EXTERNALSYSTEMREFERENCES
SET EXTERNALSTATUSICONLINK = REPLACE(EXTERNALSTATUSICONLINK, 'http://jirasvr/', 'hhttp://mycorp.com/jira/')
WHERE EXTERNALSTATUSICONLINK IS NOT NULL

 

My SQL

ExternalSystemReferencesUPDATE ExternalSystemReferences
SET ExternalUrl= replace(ExternalUrl, 'http://jirasvr/', 'http://mycorp.com/jira/')
WHERE ExternalUrl IS NOT NULL

ExternalIconUrl

UPDATE ExternalSystemReferences
SET ExternalIconUrl= replace(ExternalIconUrl, 'http://jirasvr/', 'http://mycorp.com/jira/')
WHERE ExternalIconUrl IS NOT NULL

ExternalStatusIconUrl

 

UPDATE ExternalSystemReferences
SET ExternalStatusIconUrl= replace(ExternalStatusIconUrl, 'http://jirasvr/', 'http://mycorp.com/jira/')
WHERE ExternalStatusIconUrl IS NOT NULL

ExternalStatusIconLink

 

UPDATE ExternalSystemReferences
SET ExternalStatusIconLink= replace(ExternalStatusIconLink, 'http://jirasvr/', 'hhttp://mycorp.com/jira/')
WHERE ExternalStatusIconLink IS NOT NULL

 

PostgresSQL

 

ExternalSystemReferencesUPDATE ExternalSystemReferences
SET ExternalUrl= replace(ExternalUrl, 'http://jirasvr/', 'http://mycorp.com/jira/')
WHERE ExternalUrl IS NOT NULL

ExternalIconUrl

UPDATE ExternalSystemReferences
SET ExternalIconUrl= replace(ExternalIconUrl, 'http://jirasvr/', 'http://mycorp.com/jira/')
WHERE ExternalIconUrl IS NOT NULL

ExternalStatusIconUrl

 

UPDATE ExternalSystemReferences
SET ExternalStatusIconUrl= replace(ExternalStatusIconUrl, 'http://jirasvr/', 'http://mycorp.com/jira/')
WHERE ExternalStatusIconUrl IS NOT NULL

ExternalStatusIconLink

 

UPDATE ExternalSystemReferences
SET ExternalStatusIconLink= replace(ExternalStatusIconLink, 'http://jirasvr/', 'hhttp://mycorp.com/jira/')
WHERE ExternalStatusIconLink IS NOT NULL

 

Log messages stored for synchronization may also contain hyperlinks. These can be replaced as follows:

Database Type

 

Sql Server

UPDATE ExternalSystemEvents
SET Message= replace(Message, 'http://jirasvr/', 'http://mycorp.com/jira/')
WHERE Message IS NOT NULL

Oracle

UPDATE EXTERNALSYSTEMEVENTS
SET MESSAGE = REPLACE(MESSAGE , 'http://jirasvr/', 'http://mycorp.com/jira/')
WHERE MESSAGE IS NOT NULL

MySql

UPDATE ExternalSystemEvents
SET Message= replace(Message, 'http://jirasvr/', 'http://mycorp.com/jira/')
WHERE Message IS NOT NULL

PostgreSql

UPDATE ExternalSystemEvents
SET Message= replace(Message, 'http://jirasvr/', 'http://mycorp.com/jira/')
WHERE Message IS NOT NULL

 

Completing Process

Once you have searched and replaced all the data, execute SELECT statements across the tables you have updated and confirm the URLs have been replaced correctly.

We suggest running the following statement:

 

SELECT TicketUrl FROM IncidentDetails WHERE TicketUrl IS NOT NULL

 

Next, try some of the TicketUrl values generated within your browser to confirm that you get back the expected issue (to confirm the URL is not malformed).

Once you are happy with the data updates, you can follow these steps to bring everything back online:

  • Restart IIS, from an administrator command prompt, run the command iisreset /start
  • Login to Enterprise Tester (it may take a couple of minutes to start up).
  • Re-enable previously disabled defect links.
  • Try the following tests:

    • Create a new test incident in a project and confirm it synchronizes to JIRA in its new location correctly.
    • Update an existing test incident within a project and confirm it synchronizes to JIRA and has the correctly URL etc. when clicking on the external link displayed in top right corner of the edit incident window.
  • Please contact the Catch Team if there are any issues.  Include details of all the steps performed and scripts executed and any other relevant information such as Enterprise Tester log files.