Using Import/Export in AppStudio to migrate an app configuration from one environment to another, such as from a development to a production environment, has the side effect of changing all the GUIDs in the configuration database. Becasue Overwatch and Usage Archiver rely on consistent GUIDs, they break during the migration process, and all historic data becomes inaccessible and uncorrelated for any new usage activity.
If you do a database backup/restore instead, the GUIDs are preserved. But then the log and usage data is overwritten in the new destination environment and all the previous usage data and Overwatch reports are lost.
Realistically, if you are a customer that uses Overwatch, you cannot use Import/Export unless you are willing to lose the historic usage data with every import. An enhancement request (31786) was entered into our Development System regarding this issue.
The following procedure provides a workaround for this issue by backing up certain tables in the configuration databse, doing a database backup and restore between environments, and then restoring the backed up tables needed to preserve environment specific configuration, users, and usage history.
You might need to have the support of your database infrastructure team to automate this process. Verivo does not provide any scripts to automate the process.
- Place the development server into Maintenance Mode in App Studio by:
a) Selecting Application Properties icon.
b) Selecting the Server tab.
c) Checking the box labeled Server is in Maintenance Mode.
d) Optionally adding a message in the Service Outage Message area.
2. Backup the development database by (Contact your DBA should you need assistance with this):
a) Right clicking on your configuration database in SQL.
b) Selecting Tasks > Back up.
c) Selecting Disk and confirm that the backup destination is correct.
d) Selecting Ok.
3. On the production server use AppStudio to perform the following:
a) Turning on maintenance mode in production using the same process in Step 1.
b) Forcing logout of all users in AppStudio by:
1. Selecting the Users icon.
2. Selecting the Details tab.
3. Selecting the Force Logout All Users button.
4. Backup the production database tables that need to be preserved to a temporary database:
- tmpmon_* (all tmpmon tables)
5. Restore the development database to production by:
a) Selecting your Database.
b) Selecting Tasks > Restore.
6. On the production database, truncate the tables listed in Step 4..
7. Restore the data from the preserved tables in the temporary database from Step 4 into the new production database.
8. Use AppStudio to force logout for your users in Production by:
a) Selecting the Users icon.
b) Selecting the Details tab.
c) Selecting the Force Logout All Users with New Config dropdown.
9. Turn off the maintenance mode (listed in Step 1.) in AppStudio in both development and production environments.
DATABASE MAINTENANCE: When executing your common practices of database clean-up to avoid critical performance issues, pay special attention to the tmpsys_Log table, which can disable a database or application, and the tmpsys_ColChange table, which can make Form screens load slowly and even time out. Verivo recommends archiving important records and attending (what do you mean by attending?) to log levels to minimize unnecessary bulk.