Unable to migrate data from 3.3.6 to newest 4.1.5

I’ve installed a new server for Octopus 4.1.5, on server 2016. I installed SQL 2014 Express on this new server. I have exported data from the 3.3.6 server to a folder and tried to import it on the new server, but receive:

Checking the Octopus Master Key has been configured.
Making sure it’s safe to upgrade the database schema…
Checking to see if database schema upgrade is required…
Database already has the expected schema. No changes are required.
Migrator assembly version 4.1.5+Branch.master.Sha.5179fe0310438ef78881686941d49eb0bd35822a

Add destination documents to identity map
307 destination documents added
Step took 00:00:00s

Match source documents to destination documents or new Ids
Error: ===============================================================================
Error: Could not find type ‘Octopus.Core.Model.NuGet.Feed’ in assembly ‘Octopus.Core, Version=4.1.5.0, Culture=neutral, PublicKeyToken=null’.
Error: Newtonsoft.Json.JsonSerializationException
Error: at Newtonsoft.Json.Serialization.DefaultSerializationBinder.GetTypeFromTypeNameKey(TypeNameKey typeNameKey)
Error: at Newtonsoft.Json.Utilities.ThreadSafeStore2.AddValue(TKey key) Error: at Octopus.Migrator.TypeConversionBinder.BindToType(String assemblyName, String typeName) Error: at Octopus.Migrator.ImportProcess.ImportedDocument..ctor(JObject instance, JsonSerializer serializer, IMasterKeyEncryption sourceMasterKeyEncryption) Error: at Octopus.Migrator.ImportProcess.SourceProviders.ExportedFilesSourceProvider.ReadDocuments Error: at System.Linq.Enumerable.WhereSelectEnumerableIterator2.MoveNext()
Error: at System.Linq.Enumerable.WhereEnumerableIterator1.MoveNext() Error: at System.Linq.Lookup2.Create[TSource](IEnumerable1 source, Func2 keySelector, Func2 elementSelector, IEqualityComparer1 comparer)
Error: at System.Linq.GroupedEnumerable3.GetEnumerator() Error: at System.Linq.Buffer1…ctor(IEnumerable1 source) Error: at System.Linq.OrderedEnumerable1.GetEnumerator
Error: at System.Linq.Enumerable.SelectManyIterator
Error: at Octopus.Migrator.ImportProcess.ImportController.IdentifySourceDocuments(ImportContext context)
Error: at Octopus.Migrator.ImportProcess.ImportController.ExecuteWithTimer(ImportContext ctx, String name, Action1 work) Error: at Octopus.Migrator.ImportProcess.ImportController.ImportDocuments(IImportedDocumentSource backup) Error: at Octopus.Migrator.ImportProcess.ImportController.Import(IImportedDocumentSource backup) Error: at Octopus.Migrator.Commands.ImportFilesCommand.Start() Error: at Octopus.Shared.Startup.AbstractCommand.Start(String[] commandLineArguments, ICommandRuntime commandRuntime, OptionSet commonOptions) Error: at Octopus.Shared.Startup.ConsoleHost.Run(Action1 start, Action shutdown)
Error: at Octopus.Shared.Startup.OctopusProgram.Run()
Error: -------------------------------------------------------------------------------
Error: Terminating process with exit code 100
Error: Full error details are available in the log files at:
Error: C:\Octopus\Logs
Error: C:\Users*\AppData\Local\Octopus\Logs
Error: If you need help, please send these log files to https://octopus.com/support
Error: -------------------------------------------------------------------------------
Error:
Error: The previous command returned a non-zero exit code of: 100
Error: The command that failed was: “C:\Program Files\Octopus Deploy\Octopus\Octopus.Migrator.exe” import --instance “OctopusServer” --directory “C:\Test” --password "
*****"

I have also tried simply backing up the existing database and restoring it to the new SQL server, but this fails as well, stating that the master key is invalid. Any ideas?

Hi,

Thanks for getting in touch! Our SQL data structure has changed a lot between 3.3.6 and 4.1.5. Migrating data between these version will not succeed due to this. In order to migrate the data, you have a couple of options. The first option is to upgrade the 3.3.6 instance to 4.1.5, then you should be able to migrate the data with ease.

The other option is to uninstall 4.1.5 on your new server and install 3.3.6, you can then perform your migration, followed by the upgrade on the new server.

It is always recommended that you have a backup of the database and master key before you upgrade. We also have some documentation on the subject which may give you some further bits of helpful information here.

Let me know if you have any questions or run into any further issues here. :slight_smile:

Best regards,
Daniel

Ah, that explains it. I was wondering if it was a data structure limitation between versions. I’m loathe the upgrade our PROD system in place, so I’ll try the side-load attempt where I install 3.3.6 and upgrade that.

Worked like a charm- thanks for the prompt response.

Hi,

Thanks for the update! I’m glad you got it working. Please feel free to get in touch at any time. :slight_smile:

Best regards,
Daniel