Migration

Before doing any migration you might want to check the Configuration and Deployment sections.

18.02 -> 18.03

With this release:

  • geojson property object has changed.

To update the store to the new format rerun the trajectory nodes using:

marv run --node trajectory --force --force-dependent --collection=*

17.11 -> 18.02

With this release:

  • message definitions are read from bag files instead of being expected on the system
  • marv allows mixing message types per topic.

As part of this the topics section has been renamed to connections_section and the bagmeta node has changed a bit. Please update your configuration along the lines of:

diff --git a/docs/config/marv.conf b/docs/config/marv.conf
index 0e44b19..31dfe57 100644
--- a/docs/config/marv.conf
+++ b/docs/config/marv.conf
@@ -24,7 +24,7 @@ nodes =
     marv_robotics.detail:summary_keyval
     marv_robotics.detail:bagmeta_table
     # detail sections
-    marv_robotics.detail:topics_section
+    marv_robotics.detail:connections_section
     marv_robotics.detail:images_section
     marv_robotics.detail:video_section
     marv_robotics.detail:gnss_section
@@ -43,8 +43,8 @@ filters =
     start_time | Start time    | lt le eq ne ge gt | datetime   | (get "bagmeta.start_time")
     end_time   | End time      | lt le eq ne ge gt | datetime   | (get "bagmeta.end_time")
     duration   | Duration      | lt le eq ne ge gt | timedelta  | (get "bagmeta.duration")
-    topics     | Topics        | any all           | subset     | (get "bagmeta.topics[:].name")
-    msg_types  | Message types | any all           | subset     | (get "bagmeta.msg_types[:].name")
+    topics     | Topics        | any all           | subset     | (get "bagmeta.topics")
+    msg_types  | Message types | any all           | subset     | (get "bagmeta.msg_types")
 
 listing_columns =
     # id       | Heading    | formatter | value function
@@ -69,7 +69,7 @@ detail_summary_widgets =
     bagmeta_table
 
 detail_sections =
-    topics_section
+    connections_section
     images_section
     video_section
     gnss_section

And then rerun the bagmeta node and the new connections section.

marv run --node bagmeta --node connections_section --force --collection=*

Now, nodes can be run, that were previously missing message type definitions. gnss_plots for example works differently, if it cannot find navsat orientations. To rerun it and all nodes depending on it:

marv run --node gnss_plots --force --force-dependent --collection=*

16.10 -> 17.11

In the old site:

  1. Make sure you have a backup of your old site!

  2. Dump database of old marv:

    curl -LO https://gist.githubusercontent.com/chaoflow/02a1be706cf4948a9f4d7f1fd66d6c73/raw/de4feab88bcfa756abfb6c7f5a8ccaef7f25b36d/marv-16.10-dump.py
    python2 marv-16.10-dump.py > /tmp/dump.json
    

For and in the new instance:

  1. Follow Installation and Tutorial: Setup basic site to setup a basic site.

  2. Replace marv.conf with the default Configuration and adjust as needed (e.g. scanroot).

  3. Initialize site with new configuration:

    marv init
    
  4. If your scanroot has moved, adjust paths as needed:

    sed -i -e 's,/old/scanroot/,/path/to/new/scanroot/,g' /tmp/dump.json
    
  5. Restore database in new marv:

    marv restore /tmp/dump.json
    
  6. Set password for each user:

    marv user pw <username>
    
  7. Run nodes:

    marv query -0 --collection=bags |xargs -0 -L25 -P4 marv run --keep-going
    
  8. Run again sequentially to see if there are nodes producing errors:

marv run --collection=bags