Question
Norman W. Freeman · Oct 29, 2021

How to migrate a CACHE database and code to IRIS ?

I have a workstation with a CACHE instance up and running.

On that same workstation there is also an instance of IRIS (fresh install). I would like to migrate manually the CACHE database to IRIS (ideally, all globals, routines and classes).

What I tried is to copy C:\InterSystems\Cache\mgr\CACHE.DAT to C:\InterSystems\IRIS\mgr\IRIS.DAT (after shutting down both instances) but it does not work.

I got the following message : (112) The service for the IRIS instance did not start.

Is there a better way ? (eg: using Portal or some API from command line).
I was thinking about exporting all code from Studio to XML, same for database (to GOF, using Portal) but it will probably take ages and not sure if it will export everything.

I took a look at this link : https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=AMIG
It explain how to perform migration but only IRIS => IRIS.

Product version: IRIS 2021.1
00
4 1 6 144
Log in or sign up to continue

You should not attempt to move the \mgr\CACHE.DAT as that is Caché CACHELIB core library code.

You need to identify the databases holding your custom code and data and those are the .DATs of interest to you.  Presumably you have your application in a different namespace?  Look at the the location for the routine and data databases in the Management Portal for that Namespace and start there. 

That being said - I am not sure if we support a rename of CACHE.DAT to IRIS.DAT - hopefully someone else can address that question 

some hints.

  • use the opportunity to separate data from code. So you have already a new IRIS.DAT with all globals
  • create a fresh IRIS.DAT to be used just for routine (classes, ... )
  • now you should have a clean start of your IRIS instance
  • check if the globals are visible as expected, but neither classed not routines.
  • now open 1 Studio on Caché and 1 on your target IRIS namespace
  • next you can move all classes, routines, ... by drag&drop from Caché Studio to IRIS Studio
  •  
  • this last step could also be an XMLExport of all code and XML input but you miss eventually required adjustments.

yes, renaming of CACHE.DAT to IRIS.DAT is supported, but not for the system manager databases.

Either just copy your own databases that way and recreate the required configuration (e.g. security), or - if you have a lot of config -, you can install Cache (into same directory path on new server), copy manager db (and cache.cpf) across and then do in-place upgrade to IRIS.

Thank you for confirming that renaming should work. We do in-place upgrades for our apps so I haven't tried that approach of renaming.

Thank you. I missed the fact that what is below /mgr/ is indeed system manager DBs (seems obvious).

Customer DB and code is actually somewhere else, in different namespaces and drive. I tried to rename CACHE.DAT to IRIS.DAT and it works (after proper backup). The only thing I need is to run some upgrade command on them.

Agreed with the other comments. You can find documents discussing how to migrate to IRIS on the WRC distributions site (which covers that you can rename .DATs, among other things). I'd also recommend contacting your InterSystems account rep, they'll be happy to work with you.

Depending on what version you're on, you may be able to in-place migrate (if that's a desirable option for you).