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 KB 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 ET server you can execute the following command:  iisreset /stop
  • Backup your ET database.

Updating Incidents

Incidents within the ET 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 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

Version 4.4 and below

For requirements synchronized to JIRA, the JIRA information is stored in a table called "ExternalSystemReferences". As with incidents above, it is necessary to search and replace the values of the old server name with the new server name but instead using the column "ExternalUrl".

 

Database Type

 

Sql Server

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

Oracle

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

MySql

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

PostgreSql

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

 

Additional Steps for Version 4.5. and Above

In version 4.5 and above of Enterprise Tester, additional columns store URLs to other assets associated with JIRA for requirement sync:

  • ExternalIconUrl
  • ExternalStatusIconUrl
  • ExternalStatusIconLink

 

SQL Server

 

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

 

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

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

 

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

 

Also from v4.5 and above of Enterprise Tester, the log messages stored for synchronization may 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 some 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 ET (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.
  • If everything looks OK, go live.  However, if you are now having issues, please contact the Catch Support Team and include details of all the scripts you executed and any other relevant information such as ET log files.