Giter VIP home page Giter VIP logo

Comments (6)

maffoo avatar maffoo commented on July 18, 2024

We've used the migration tool to migrate registry data, including subfolders, so I'm not sure what the issue could be. If you have subdirectories that are not named with a .dir suffix (as in #95), then neither the registry server nor the migration tool wil recognize them, but the registry itself would never create such directories, so those must have been created in some other way?

As for the issues with string escaping, I think in fact the delphi manager always used single quotes for strings in registry files, so it's not surprising that it would fail on a key file containing double quotes (I think this was originally because pascal source code uses single quotes for string literals). Can you actually access the test.key file that you mentioned with a double-quoted string using the old delphi manager?

from scalabrad.

xiaoyuejin avatar xiaoyuejin commented on July 18, 2024

Hi maffoo, yes, I actually can access the test.key file with double-quoted strings with my delphi manager (whereas single-quoted strings will return an error). :D

OK, now it is getting very clear what is going on. The "Main Stream" delphi manager always used single quotes for strings, as well as .dir suffix for directories. All the upgrade/migration of the new versions of LabRAD are designed around these formats.

But there exists a weird and forgotten branch in Boston since 2011 (version 2011.10b to be precise), where the manager does not do .dir suffix (it reads test.dir directory if you set the suffix manually though, so test and test.dir are TWO different directories), and ONLY takes double-quoted strings.

I have exclusively used the "Boston" version of manager in the past 6 years and never talked to the outside world so I never got a problem. Now that I finally decide to talk to the outside, I am like a caveman walking around in Manhattan... I guess nobody else is using the Boston version anymore. So end of the story.

As to my migration/upgrade, I think now I've understood the new version good enough, that I can just write up a short code, hook up with 1 old manager and 1 new manager at the same time, and literally read each and every data/registry using the old manager, and pass them to the new manager one by one to store them in new format. Might take a while (GBs of data) but it should not be difficult to do.

from scalabrad.

maffoo avatar maffoo commented on July 18, 2024

I see. You should be able to use the labrad-migrate-registry tool to do the "online" migration where it connects to your running version of the delphi manager to read data, and sends it to a running version of scalabrad to write the data in the new format (or can write directly to disk). You just need to use a labrad:// url for the source registry when you run the migration tool. That way you shouldn't need to write any code yourself.

from scalabrad.

xiaoyuejin avatar xiaoyuejin commented on July 18, 2024

But my old registry contains "XXX" (which makes the migration tool report an error, see above) and all the directories don't have .dir suffix (which means they are invisible for the migration tool). So, labrad-migrate-registry won't work for me. At least I must write the first part, the code that can go through all the files and directories of my registry. So I guess I might as well write the whole thing...

from scalabrad.

maffoo avatar maffoo commented on July 18, 2024

What I'm saying is to run your old manager with the "boston" code and then tell labrad-migrate-registry to just talk to that manager to get the registry data. The migration code never needs to touch the actual files on disk.

from scalabrad.

xiaoyuejin avatar xiaoyuejin commented on July 18, 2024

OK now I get it. Thanks.

from scalabrad.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.