Comments (6)
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.
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.
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.
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.
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.
OK now I get it. Thanks.
from scalabrad.
Related Issues (20)
- Noticed a typo in labrad.bat that prevents execution. HOT 3
- scalabrad on raspberry pi HOT 1
- Broken link in binary download HOT 1
- Need way to kill server/client connection HOT 3
- Need better information on manager connection list HOT 2
- how to compile the scala project? HOT 2
- Registry changes do not always save
- Connection.newContext returns default context on first call
- Occasional NPE in tests when Listener fails to start
- Auth server gives nonsense error when trying to change settings from non-local manager
- Error message with "server already connected" when it's not connected
- Memory leak when multiheaded servers fail to connect
- Node can sometimes lose track of processes HOT 1
- Human readable version of sqlite Registry blob data HOT 2
- java 8 missing error message unclear HOT 2
- LabRAD upgrade issue: directory .dir extension, can one avoid it? HOT 1
- LabRAD manager fails to start when pointed to the old registry (and a funny workaround) HOT 3
- trouble starting labrad manager HOT 1
- labrad manager shutting down HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from scalabrad.