Introduction
There have been some requests, where RMsis users entered some critical data in the embedded database during the evaluation period and at a later date wish to migrate to a production ready DataBase.
...
However, specific installations may have some unique issues. If you face any such issue, please contact support@optimizory.com. Also see the notes at the end of this article.
Supported Platforms
- Linux OS has been used in the procedure described below.
- For migration on MS Windows platform, please use windows versions of all the listed tools. One of our customers has migrated on Windows 7 Platform and shared the following additional points:
- When we installed SQuirrel SQL on our Windows 7 machine, some plugins where not correctly installed although they were selected for installation in the installer.
- Especially "Copy Table" did not show up in the context menu.
- After manually installing the plugins in the right place and restarting the tool the context menu was there.
Resources / Tools Required
- You must have JAVA installed on your machine.
- SQuirrel SQL (http://squirrel-sql.sourceforge.net/)
- VIM
- JDBC database drivers
- Blank RMsis database (be sure you use correct database version)
- rmsis_164_blank.sql for RMsis-1.6.4
- rmsis_167_blank.sql for RMsis-1.6.7
- rmsis_168_blank.sql for RMsis-1.6.8
- rmsis_170_blank.sql for RMsis-1.7.0
- rmsis_171_r168_blank.sql for RMsis-1.7.1-r168
- rmsis_171_r183_blank.sql for RMsis-1.7.1-r183
- rmsis_171_r200_blank.sql for RMsis-1.7.1-r200
- rmsis_178_r206_blank.sql for RMsis-1.7.8-r206
- rmsis_186_r297_blank.sql for RMsis-1.8.6-r297
Perquisite
- Jira admin access
- MySQL root access
Procedure
- Installing SQuirrel SQL
- Download SQuirrel SQL from link given above
- Follow installation instructions given on http://www.squirrelsql.org/#installation
- Make sure, you enable all the plugins, specially H2 and MySQL database support
- Copy provided H2 and MySQL driver file in <SQuirrel Installation directory>/Contents/Resources/Java/lib directory
- Stop your JIRA instance
- Take RMsis database backup
- Go to <Jira Home>/rmsis/db/h2/<Your rmsis version>/rmsis.h2.db
- Copy this file and put in your <Work Folder>
- we will use this folder for most of our activities, so make sure it doesn't contain any other file
- creating a new folder is good idea
- Create two MySQL databases
- Only one will be used by RMsis, and you can drop other one later
- we will assume "rmsis_db_1" and "rmsis_db_2" as two database with user name "rmsis" and password "rmsis"
- You can choose different parameters, if you wish
- Start SQuirrel SQL (follow instructions given on installation page)
- Connecting to your H2 database file, placed in your work folder
- Go to Alias > New Alias
- Put rmsis-h2 as alias name
- From driver select "H2 Embedded"
- In URL replace <db-name> with path to <path to work folder>/rmsis
- User Name - "sa"
- Leave other password blank
- Click "Test" for testing your connection, if it fine, press save alias by clicking "OK".
...
- In alias section click on rmsis-h2 (connect to it)
- On left hand pane select rmsis-h2 > RMSIS > PUBLIC
- Go to SQL pane and write following queries, one per line
- ALTER TABLE PROJECT ALTER COLUMN VERSION RENAME TO VERSION_NEW;
- ALTER TABLE TEST_CASE ALTER COLUMN VERSION RENAME TO VERSION_NEW;
- ALTER TABLE REQUIREMENT_HIERARCHY ALTER COLUMN LEVEL RENAME TO LEVEL_NEW; (Only for RMsis-1.7.1-r183 and earlier versions)
- ALTER TABLE REQUIREMENT_BASELINE ALTER COLUMN LEVEL RENAME TO LEVEL_NEW; (Only for RMsis-1.7.1-r183 and earlier versions)
- ALTER TABLE ATTACHMENT ALTER COLUMN SIZE RENAME TO SIZE_NEW; (Only for RMsis-1.7.1-r183 and earlier versions)
- ALTER TABLE REPORTING ALTER COLUMN DOMAIN RENAME TO DOMAIN_NEW;
- ALTER TABLE TEST_STEP ALTER COLUMN ACTION RENAME TO ACTION_NEW; (Only for RMsis-1.7.1-r168 and abovelater versions)
- Update rmsis_sync_status SET LAST_SYNC_AT='1980-01-01 00:00:00' WHERE LAST_SYNC_AT < '1980-01-01 00:00:00'; (Only for RMsis-1.8.6-r297)
- Run queries (CTRL + ENTER)
- Now your H2 database is ready for migration
...
- Go to Alias > New Alias
- Put rmsis-mysql as alias name
- Select "MySQL Driver" for driver
- In URL put jdbc:mysql://<hostname>:<port>/<dbname>?useUnicode=true&characterSetResults=UTF-8&characterEncoding=UTF8
- replace <hostname> with MySQL host name, localhost if it is running on localhost,
- replace <port> with MySQL port, 3306 is default
- replace <dbname> with rmsis_db_1 (created in step 4)
- Put user name and password, that you can created in step 4
- Test connection and save it once it is done.
...
- Open terminal and connect to rmsis_db_1 using MySQL
- mysql -u<username> -p<password> rmsis_db_1
- Run following queries
- ALTER TABLE `PROJECT` CHANGE `VERSION_NEW` `VERSION` INT( 11 ) NULL DEFAULT NULL;
- ALTER TABLE `TEST_CASE` CHANGE `VERSION_NEW` `VERSION` INT( 11 ) NULL DEFAULT NULL;
- ALTER TABLE `REQUIREMENT_HIERARCHY` CHANGE `LEVEL_NEW` `LEVEL` INT( 11 ) NULL DEFAULT NULL; (RMsis-1.7.1-r183 and below)
- ALTER TABLE `REQUIREMENT_BASELINE` CHANGE `LEVEL_NEW` `LEVEL` INT( 11 ) NULL DEFAULT NULL; (RMsis-1.7.1-r183 and below)
- ALTER TABLE `ATTACHMENT` CHANGE `SIZE_NEW` `SIZE` BIGINT( 20 ) NULL DEFAULT NULL; (RMsis-1.7.1-r183 and below)
- ALTER TABLE `REPORTING` CHANGE `DOMAIN_NEW` `DOMAIN` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;
- ALTER TABLE `TEST_STEP` CHANGE `ACTION_NEW` `ACTION` LONGTEXT CHARACTER SET utf8 COLLATE utf8_general_ci; (Only for RMsis-1.7.1-r168 and above)
- Now close MySQL connection
- Go to your work folder (created in step 3), and dump your RMsis database MySQL file (rmsis_db_1)
- mysqldump -u<username> -p<password> --no-create-info --skip-add-drop-table rmsis_db_1 > rmsis_db_1.sql
- Open this SQL file in VIM
- Run command
- :%s/`\(\w\+\)`/\L&/g (it is to change case of table and column name)
- Save and exit editor
- :wq
- Run command
- Open terminal and connect to rmsis_db_1 using MySQL
...
17. Go to RMsis, and test if everything is fine.
Have Issues ?
- If the process breaks down in between or if you have any issues, do not proceed and contact support@optimizory.com.
- looking at the complexity of migration, it may not be practical to exchange information on mails. At the minimum, we will need mechanism to view your screen, either through WebEx or Skype. Please ensure that this is possible, before contacting support.
...