Migrating A OneStream App Or Making GolfStream Yours, Part 1

From the Ashes of Disaster Grow the Roses of Success

Were Yr. Obt. Svt. smart, installing a local copy of the GolfStream sample application would have fast, easy (the first part of this post shows how to do it and it really is simple), and error free. Alas, that was not to be because I installed a Really Old version of GolfStream instead of a Brand New one, didn’t quite suss out that I’d done that, cursed OneStream for being an Obviously Buggy Product, and – eventually but only with much pain and error – only after much unfair and unfounded ranting and raving, then figured out what I did incorrectly. My path to success of any sort has always been thus.

Read the below graphic with an infrastructure eye, and everything makes sense.

Diagram Description automatically generated

And yet I did install it and it is easy to do so and fixing the issue was simple. Follow along and I think you’ll agree.

Downloading GolfStream

If you’re an administrator (you are likely to be an administrator if you have the rights to do the below), go to https://xfmarketplace.com and log in:

Graphical user interface, application Description automatically generated

Yes, that’s me, no I’m not a robot; that’s just a symbol of my deep and abiding alienation. Also, I think kitschy robots are cool.

Getting it

Log into MarketPlace, navigate to Platform:

A screenshot of a computer Description automatically generated

Click on Reference Material: Graphical user interface, application, Teams Description automatically generated

And find out how fast your internet connection really is:

A picture containing graphical user interface Description automatically generated

Anyone reading this two years from now will of course laugh at the speed but since I started out with these on my Commodore VIC-20

A picture containing text, electronics Description automatically generated

…I cannot help but be impressed.

Look deeply into my zip file

Have a look see at the Reference zip file and you’ll see the modern version of GolfStream (this is OneStream version 7.01):

Calendar Description automatically generated with low confidence

Matching the version of GolfStream with your install is (unsurprisingly) important. Of course, if I had done that, there’d be no part two in this blog post series to tempt you back, so I suppose ignoring the version is a “good” thing. It certainly wasn’t all that great for what little sanity I have.

Here’s GolfStream65.zip. Note the file creation dates:

Graphical user interface Description automatically generated

Of course, I didn’t download the latest version.

The old ways are the best ways

Instead, what I did was trawl around till I found a copy of GolfStream from OneStream 4.3.1. Why take my mind out of neutral with the throttle wide open if it requires an extra moment of thought?

2017? That’s when I started with OneStream. Yikes.

Graphical user interface, text, application, email Description automatically generated

No matter, the installation is the same

What you see above in both the latest iteration of GolfStream and one from five (!) years ago, is a series of SQL Server files that contain the entire GolfStream application: cubes, dimensions, Workflow, Business Rules, Cube Views, Dashboards, Data Management Sequences and Steps, Data Sources, and on and on. Import these files into a database on a SQL Server instance, point a OneStream reference to said database, and Bob’s your uncle. What could possibly be easier?

Where, just where?

Assuming you have access to your SQL Server server (this guide does not apply to cloud instances unless you have true server access – unlikely but possible, but read along regardless for the amusement factor if nothing else), you’ll need to figure out where on earth SQL Server’s database files are located as you must copy the GolfStream files to that location.

As I am lazy, I did a quick search and found this excellent article on using SQL Server itself to identify the location.

The query itself (once one copies and pastes it into SQL Server Management Studio’s query window) is simple:

SELECT

mdf.database_id,

mdf.name,

mdf.physical_name as data_file,

ldf.physical_name as log_file,

db_size = CAST((mdf.size * 8.0)/1024 AS DECIMAL(8,2)),

log_size = CAST((ldf.size * 8.0 / 1024) AS DECIMAL(8,2))

FROM (SELECT * FROM sys.master_files WHERE type_desc = ‘ROWS’ ) mdf

JOIN (SELECT * FROM sys.master_files WHERE type_desc = ‘LOG’ ) ldf

ON mdf.database_id = ldf.database_id

Run it in a query window and see where SQL Server files live:

Graphical user interface, application Description automatically generated

Getting GolfStream into SQL Server

The task then is to navigate to navigate to that folder (in the case of my local install, it’s C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\) and copy the GolfStream files across.

But copying the files across isn’t enough: SQL Server must know they are there and that can only be done by creating a database by attaching the files.

Right click on the Databases topmost node and select Attach…

Graphical user interface Description automatically generated

Graphical user interface, text, application Description automatically generated

Click on Add and then select the OneStream_GolfStream.mdf file.

NB – MDF files are the primary database files that OneStream latches onto. For the curious (if you’ve made it this far, you are one of the sad group of geeks that are curious), see this Stack Overflow post or this Wikipedia article if you don’t already know all about it.

Graphical user interface, text, application Description automatically generated

Click on OK: Graphical user interface, text, application Description automatically generated

Let SQL Server whir and creak a bit (this actually quite fast, even on a laptop) and then click on OK:

Graphical user interface, text, application Description automatically generated

And ta da, you now have the GolfStream SQL Server database:

A picture containing text Description automatically generated

Getting it into OneStream

SQL Server now has the guts of the GolfStream application. OneStream itself needs to know that GolfStream database exists.

To do that, connect to OneStream and select the (System Administration) application:

Graphical user interface, application Description automatically generated

As the application tables are already created, create a reference to the database:

Graphical user interface, text, application Description automatically generated

Select the explicitly named “OneStream Database Server” connection (although the default works as well but my OCD doesn’t allow me to do that):

Graphical user interface, text, application Description automatically generated

And then type in the name of the SQL Server database you’ve just created:

Graphical user interface, text, application Description automatically generated

The GolfStream application is now created:

Graphical user interface, text, application, chat or text message Description automatically generated

Log out of the system administration application and then connect to GolfStream:

Graphical user interface Description automatically generated

Success! Boil in bag!

Graphical user interface, application Description automatically generated

Or is it? I – happily and quite erroneously – thought I was done, but when I tried creating a Quick View:

Graphical user interface, application, table Description automatically generated

Bummer. Bugger. Boohoo.

So what happened and how does it get fixed?

As I noted at the tippy top of this post, I cleverly imported an ancient version of GolfStream. I’ll not keep you in suspense and not tell you what’s gone wrong: the tables in the GolfStream SQL Server database are out of date and while many things work, not everything as evinced by the above error message.

The fix is easy-peasy and will be the subject of the next post in this series. There’s not a jot of code, merely running through a series of updates via the Database Configuration Utility.

I pinky promise, it’s simple. Tune in next time to see the magic.

Be seeing you.