Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

5 June 2024

MIgration of Run2.2i and Run3.1i

2.2i

REPO=/global/cfs/cdirs/lsst/production/gen3/DC2/Run2.2i/repo/butler.yaml

 butler migrate show-current --butler $REPO

attributes: lsst.daf.butler.registry.attributes.DefaultButlerAttributeManager 1.0.0 -> f22a777cf382

collections: lsst.daf.butler.registry.collections.synthIntKey.SynthIntKeyCollectionManager 2.0.0 -> 8c57494cabcc (head)

datasets: lsst.daf.butler.registry.datasets.byDimensions._manager.ByDimensionsDatasetRecordStorageManagerUUID 1.0.0 -> 2101fbf51ad3

datastores: lsst.daf.butler.registry.bridge.monolithic.MonolithicDatastoreRegistryBridgeManager 0.2.0 -> a07b3b60e369 (head)

dimensions: lsst.daf.butler.registry.dimensions.static.StaticDimensionRecordStorageManager 6.0.1 -> 1601d5973bf8

dimensions-config: daf_butler 5 -> 2a8a32e1bec3

opaque: lsst.daf.butler.registry.opaque.ByNameOpaqueTableStorageManager 0.2.0 -> 77e5b803ad3f (head)

butler migrate upgrade $REPO 352c30854bb0


lsst.1fae088c80b6_py INFO: Locking exposure table
lsst.1fae088c80b6_py INFO: Checking that this is an unmodified daf_butler universe 5 repo
lsst.daf.butler.cli.utils ERROR: Caught an exception, details are in traceback:
Traceback (most recent call last):
  File "/pscratch/sd/d/descdm/schema-migration-v7/daf_butler_migrate/python/lsst/daf/butler_migrate/cli/cmd/commands.py", line 142, in upgrade
    script.migrate_upgrade(*args, **kwargs)
  File "/pscratch/sd/d/descdm/schema-migration-v7/daf_butler_migrate/python/lsst/daf/butler_migrate/script/migrate_upgrade.py", line 92, in migrate_upgrade
    command.upgrade(cfg, revision, sql=sql)
  File "/cvmfs/sw.lsst.eu/linux-x86_64/lsst_distrib/w_2024_21/conda/envs/lsst-scipipe-8.0.0-exact-ext/lib/python3.11/site-packages/alembic/command.py", line 403, in upgrade
    script.run_env()
  File "/cvmfs/sw.lsst.eu/linux-x86_64/lsst_distrib/w_2024_21/conda/envs/lsst-scipipe-8.0.0-exact-ext/lib/python3.11/site-packages/alembic/script/base.py", line 583, in run_env
    util.load_python_file(self.dir, "env.py")
  File "/cvmfs/sw.lsst.eu/linux-x86_64/lsst_distrib/w_2024_21/conda/envs/lsst-scipipe-8.0.0-exact-ext/lib/python3.11/site-packages/alembic/util/pyfiles.py", line 95, in load_python_file
    module = load_module_py(module_id, path)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/cvmfs/sw.lsst.eu/linux-x86_64/lsst_distrib/w_2024_21/conda/envs/lsst-scipipe-8.0.0-exact-ext/lib/python3.11/site-packages/alembic/util/pyfiles.py", line 113, in load_module_py
    spec.loader.exec_module(module)  # type: ignore
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/pscratch/sd/d/descdm/schema-migration-v7/daf_butler_migrate/migrations/_alembic/env.py", line 72, in <module>
    run_migrations_online()
  File "/pscratch/sd/d/descdm/schema-migration-v7/daf_butler_migrate/migrations/_alembic/env.py", line 66, in run_migrations_online
    context.run_migrations()
  File "<string>", line 8, in run_migrations
  File "/cvmfs/sw.lsst.eu/linux-x86_64/lsst_distrib/w_2024_21/conda/envs/lsst-scipipe-8.0.0-exact-ext/lib/python3.11/site-packages/alembic/runtime/environment.py", line 948, in run_migrations
    self.get_context().run_migrations(**kw)
  File "/cvmfs/sw.lsst.eu/linux-x86_64/lsst_distrib/w_2024_21/conda/envs/lsst-scipipe-8.0.0-exact-ext/lib/python3.11/site-packages/alembic/runtime/migration.py", line 627, in run_migrations
    step.migration_fn(**kw)
  File "/pscratch/sd/d/descdm/schema-migration-v7/daf_butler_migrate/migrations/dimensions-config/1fae088c80b6.py", line 49, in upgrade
    _validate_initial_dimension_universe(ctx)
  File "/pscratch/sd/d/descdm/schema-migration-v7/daf_butler_migrate/migrations/dimensions-config/1fae088c80b6.py", line 84, in _validate_initial_dimension_universe
    ctx.attributes.validate_dimensions_json(5)
  File "/pscratch/sd/d/descdm/schema-migration-v7/daf_butler_migrate/python/lsst/daf/butler_migrate/butler_attributes.py", line 228, in validate_dimensions_json
    raise err
ValueError: dimensions.json stored in database does not match expected daf_butler universe version 5.
Differences:

--- 
+++ 
@@ -109,12 +109,12 @@
           "type": "int"
         },
         {
-          "doc": "Earliest sequence number that might be related to this exposure.\n",
+          "doc": "The sequence number of the first exposure of the visit that contains this exposure.",
           "name": "seq_start",
           "type": "int"
         },
         {
-          "doc": "Oldest sequence number that might be related to this exposure.\n",
+          "doc": "The sequence number of the final exposure of the visit that contains this exposure.",
           "name": "seq_end",
           "type": "int"
         },
@@ -157,7 +157,7 @@
           "type": "float"
         },
         {
-          "doc": "Azimuth of the telescope at the start of the exposure in degrees. Can be NULL for observations that are not on sky, or for observations where the azimuth is not relevant.\n",
+          "doc": "Azimuth of the telescope at the start of the exposure in degrees. Can be NULL for observations that are not on sky, or for observations where the azimuth is not relevant.",
           "name": "azimuth",
           "type": "float"
         },
@@ -167,7 +167,7 @@
           "type": "float"
         },
         {
-          "doc": "True if this exposure has some content that was simulated. This can be if the data itself were simulated or if parts of the header came from simulated systems, such as observations in the lab that are recorded as on-sky.\n",
+          "doc": "True if this exposure has some content that was simulated. This can be if the data itself were simulated or if parts of the header came from simulated systems, such as observations in the lab that are recorded as on-sky.",
           "name": "has_simulated",
           "type": "bool"
         }
@@ -196,7 +196,7 @@
           "type": "int"
         },
         {
-          "doc": "The preferred visit system for this instrument.\n",
+          "doc": "The preferred visit system for this instrument.",
           "name": "visit_system",
           "type": "int"
         },
@@ -366,7 +366,7 @@
           "type": "int"
         },
         {
-          "doc": "The sequence number of the first exposure that is part of this visit.\n",
+          "doc": "The sequence number of the first exposure that is part of this visit.",
           "name": "seq_num",
           "type": "int"
         },
@@ -394,12 +394,12 @@
           "type": "string"
         },
         {
-          "doc": "Approximate azimuth of the telescope in degrees during the visit. Can only be approximate since it is continually changing during an observation and multiple exposures can be combined from a relatively long period.\n",
+          "doc": "Approximate azimuth of the telescope in degrees during the visit. Can only be approximate since it is continually changing during an observation and multiple exposures can be combined from a relatively long period.",
           "name": "azimuth",
           "type": "float"
         },
         {
-          "doc": "Approximate zenith angle in degrees during the visit. Can only be approximate since it is continuously changing during an observation and multiple exposures can be combined from a relatively long period.\n",
+          "doc": "Approximate zenith angle in degrees during the visit. Can only be approximate since it is continuously changing during and observation and multiple visits can be combined from a relatively long period.\n",
           "name": "zenith_angle",
           "type": "float"
         }
@@ -435,7 +435,7 @@
       }
     },
     "visit_system": {
-      "doc": "A system of self-consistent visit definitions, within which each exposure should appear at most once.\nA visit may belong to multiple visit systems, if the logical definitions for those systems happen to result in the same set of exposures - the main (and probably only) example is when a single-snap visit is observed, for which both the \"one-to-one\" visit system and a \"group by header metadata\" visit system will define the same single-exposure visit.\n",
+      "doc": "A system of self-consistent visit definitions, within which each exposure should appear at most once.\nA visit may belong to multiple visit systems, if the logical definitions for those systems happen to result in the same set of exposures - the main (and probably only) example is when a single-snap visit is observed, for which both the \"one-to-one\" visit system and a \"group by header metadata\" visit system will define the same single-exposure visit. ",
       "keys": [
         {
           "name": "id",
@@ -459,7 +459,7 @@
     },
     "visit_system_membership": {
       "always_join": true,
-      "doc": "A many-to-many join table that relates visits to the visit_systems they belong to.\n",
+      "doc": "A many-to-many join table that relates visits to the visit_systems they belong to.",
       "populated_by": "visit",
       "requires": [
         "visit",
Repositories originally created at dimension universe 1 or earlier may have incorrect documentation strings.
Re-run butler migrate with the flag '--options allow_dimension_universe_mismatch=1' to bypass this check.
This will overwrite any customizations made to the dimension universe.


This triggered the exemption noted here in the Rubin doc

Panel

Step 4b: Possible failure recovery needed for older repositories

For older repositories, the migration command in step 4a may fail with the following error:

ValueError: dimensions.json stored in database does not match expected daf_butler universe version 5.

This can happen because we recently began validating the configuration during migration, and there can be some minor discrepancies in older repositories.

If this occurs, review the output to make sure that only documentation strings were incorrect, for example lines like:

-          "doc": "Earliest sequence number that might be related to this exposure.\n",
+          "doc": "The sequence number of the first exposure of the visit that contains this exposure.",

If there are any changes that do not begin with "doc", do not attempt to finish the migration.  Stop and ask for further guidance.

If everything is OK, run the following command to complete the migration:

butler migrate upgrade <repo> 352c30854bb0 --options allow_dimension_universe_mismatch=1

Rerunning with:  butler migrate upgrade $REPO 352c30854bb0 --options allow_dimension_universe_mismatch=1

output


Code Block
languagebash
lsst.1fae088c80b6_py INFO: Locking exposure table
lsst.1fae088c80b6_py INFO: Generating data for day_obs table from exposure_table
lsst.1fae088c80b6_py INFO: Loading instrument definition LSSTCam-imSim from class lsst.obs.lsst.LsstCamImSim
lsst.1fae088c80b6_py INFO: Creating day_obs table
lsst.1fae088c80b6_py INFO: Populating day_obs table
lsst.1fae088c80b6_py INFO: Creating instrument index for day_obs table
lsst.1fae088c80b6_py INFO: Updating exposure table to reference day_obs table
lsst.1fae088c80b6_py INFO: Creating group table
lsst.1fae088c80b6_py INFO: Populating group table
lsst.1fae088c80b6_py INFO: Creating instrument index for group table
lsst.1fae088c80b6_py INFO: Updating exposure table to reference group table
lsst.1fae088c80b6_py INFO: Updating dimensions.json in ButlerAttributes
lsst.352c30854bb0_py INFO: Checking that this is an unmodified daf_butler universe 6 repo
lsst.352c30854bb0_py INFO: Adding can_see_sky column to exposure table
lsst.352c30854bb0_py INFO: Populating can_see_sky column
lsst.352c30854bb0_py INFO: ...can_see_sky values were set for all exposure records.
lsst.352c30854bb0_py INFO: Updating dimensions.json in ButlerAttributes




Checking looks good:

butler migrate show-current --butler $REPO

attributes: lsst.daf.butler.registry.attributes.DefaultButlerAttributeManager 1.0.0 -> f22a777cf382

collections: lsst.daf.butler.registry.collections.synthIntKey.SynthIntKeyCollectionManager 2.0.0 -> 8c57494cabcc (head)

datasets: lsst.daf.butler.registry.datasets.byDimensions._manager.ByDimensionsDatasetRecordStorageManagerUUID 1.0.0 -> 2101fbf51ad3

datastores: lsst.daf.butler.registry.bridge.monolithic.MonolithicDatastoreRegistryBridgeManager 0.2.0 -> a07b3b60e369 (head)

dimensions: lsst.daf.butler.registry.dimensions.static.StaticDimensionRecordStorageManager 6.0.1 -> 1601d5973bf8

dimensions-config: daf_butler 7 -> 352c30854bb0 (head)

opaque: lsst.daf.butler.registry.opaque.ByNameOpaqueTableStorageManager 0.2.0 -> 77e5b803ad3f (head)


 butler query-dimension-records --limit 10 $REPO exposure

  instrument   id day_obs  group physical_filter obs_id exposure_time dark_time observation_type observation_reason seq_num seq_start seq_end target_name science_program    tracking_ra       tracking_dec        sky_angle      azimuth    zenith_angle    has_simulated can_see_sky               timespan (TAI)              

------------- --- -------- ----- --------------- ------ ------------- --------- ---------------- ------------------ ------- --------- ------- ----------- --------------- ----------------- ------------------ ------------------ ------- ------------------ ------------- ----------- ------------------------------------------


Run3.1i

REPO=/global/cfs/cdirs/lsst/production/gen3/DC2/Run3.1i/repo/butler.yaml

 butler migrate show-current --butler $REPO

attributes: lsst.daf.butler.registry.attributes.DefaultButlerAttributeManager 1.0.0 -> f22a777cf382

collections: lsst.daf.butler.registry.collections.synthIntKey.SynthIntKeyCollectionManager 2.0.0 -> 8c57494cabcc (head)

datasets: lsst.daf.butler.registry.datasets.byDimensions._manager.ByDimensionsDatasetRecordStorageManagerUUID 1.0.0 -> 2101fbf51ad3

datastores: lsst.daf.butler.registry.bridge.monolithic.MonolithicDatastoreRegistryBridgeManager 0.2.0 -> a07b3b60e369 (head)

dimensions: lsst.daf.butler.registry.dimensions.static.StaticDimensionRecordStorageManager 6.0.1 -> 1601d5973bf8

dimensions-config: daf_butler 5 -> 2a8a32e1bec3

opaque: lsst.daf.butler.registry.opaque.ByNameOpaqueTableStorageManager 0.2.0 -> 77e5b803ad3f (head)


Same anticipated error as Run2.2i

 butler migrate upgrade $REPO 352c30854bb0
lsst.1fae088c80b6_py INFO: Locking exposure table
lsst.1fae088c80b6_py INFO: Checking that this is an unmodified daf_butler universe 5 repo
lsst.daf.butler.cli.utils ERROR: Caught an exception, details are in traceback:
Traceback (most recent call last):
  File "/pscratch/sd/d/descdm/schema-migration-v7/daf_butler_migrate/python/lsst/daf/butler_migrate/cli/cmd/commands.py", line 142, in upgrade
    script.migrate_upgrade(*args, **kwargs)
  File "/pscratch/sd/d/descdm/schema-migration-v7/daf_butler_migrate/python/lsst/daf/butler_migrate/script/migrate_upgrade.py", line 92, in migrate_upgrade
    command.upgrade(cfg, revision, sql=sql)
  File "/cvmfs/sw.lsst.eu/linux-x86_64/lsst_distrib/w_2024_21/conda/envs/lsst-scipipe-8.0.0-exact-ext/lib/python3.11/site-packages/alembic/command.py", line 403, in upgrade
    script.run_env()
  File "/cvmfs/sw.lsst.eu/linux-x86_64/lsst_distrib/w_2024_21/conda/envs/lsst-scipipe-8.0.0-exact-ext/lib/python3.11/site-packages/alembic/script/base.py", line 583, in run_env
    util.load_python_file(self.dir, "env.py")
  File "/cvmfs/sw.lsst.eu/linux-x86_64/lsst_distrib/w_2024_21/conda/envs/lsst-scipipe-8.0.0-exact-ext/lib/python3.11/site-packages/alembic/util/pyfiles.py", line 95, in load_python_file
    module = load_module_py(module_id, path)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/cvmfs/sw.lsst.eu/linux-x86_64/lsst_distrib/w_2024_21/conda/envs/lsst-scipipe-8.0.0-exact-ext/lib/python3.11/site-packages/alembic/util/pyfiles.py", line 113, in load_module_py
    spec.loader.exec_module(module)  # type: ignore
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/pscratch/sd/d/descdm/schema-migration-v7/daf_butler_migrate/migrations/_alembic/env.py", line 72, in <module>
    run_migrations_online()
  File "/pscratch/sd/d/descdm/schema-migration-v7/daf_butler_migrate/migrations/_alembic/env.py", line 66, in run_migrations_online
    context.run_migrations()
  File "<string>", line 8, in run_migrations
  File "/cvmfs/sw.lsst.eu/linux-x86_64/lsst_distrib/w_2024_21/conda/envs/lsst-scipipe-8.0.0-exact-ext/lib/python3.11/site-packages/alembic/runtime/environment.py", line 948, in run_migrations
    self.get_context().run_migrations(**kw)
  File "/cvmfs/sw.lsst.eu/linux-x86_64/lsst_distrib/w_2024_21/conda/envs/lsst-scipipe-8.0.0-exact-ext/lib/python3.11/site-packages/alembic/runtime/migration.py", line 627, in run_migrations
    step.migration_fn(**kw)
  File "/pscratch/sd/d/descdm/schema-migration-v7/daf_butler_migrate/migrations/dimensions-config/1fae088c80b6.py", line 49, in upgrade
    _validate_initial_dimension_universe(ctx)
  File "/pscratch/sd/d/descdm/schema-migration-v7/daf_butler_migrate/migrations/dimensions-config/1fae088c80b6.py", line 84, in _validate_initial_dimension_universe
    ctx.attributes.validate_dimensions_json(5)
  File "/pscratch/sd/d/descdm/schema-migration-v7/daf_butler_migrate/python/lsst/daf/butler_migrate/butler_attributes.py", line 228, in validate_dimensions_json
    raise err
ValueError: dimensions.json stored in database does not match expected daf_butler universe version 5.
Differences:

--- 
+++ 
@@ -109,12 +109,12 @@
           "type": "int"
         },
         {
-          "doc": "Earliest sequence number that might be related to this exposure.\n",
+          "doc": "The sequence number of the first exposure of the visit that contains this exposure.",
           "name": "seq_start",
           "type": "int"
         },
         {
-          "doc": "Oldest sequence number that might be related to this exposure.\n",
+          "doc": "The sequence number of the final exposure of the visit that contains this exposure.",
           "name": "seq_end",
           "type": "int"
         },
@@ -157,7 +157,7 @@
           "type": "float"
         },
         {
-          "doc": "Azimuth of the telescope at the start of the exposure in degrees. Can be NULL for observations that are not on sky, or for observations where the azimuth is not relevant.\n",
+          "doc": "Azimuth of the telescope at the start of the exposure in degrees. Can be NULL for observations that are not on sky, or for observations where the azimuth is not relevant.",
           "name": "azimuth",
           "type": "float"
         },
@@ -167,7 +167,7 @@
           "type": "float"
         },
         {
-          "doc": "True if this exposure has some content that was simulated. This can be if the data itself were simulated or if parts of the header came from simulated systems, such as observations in the lab that are recorded as on-sky.\n",
+          "doc": "True if this exposure has some content that was simulated. This can be if the data itself were simulated or if parts of the header came from simulated systems, such as observations in the lab that are recorded as on-sky.",
           "name": "has_simulated",
           "type": "bool"
         }
@@ -196,7 +196,7 @@
           "type": "int"
         },
         {
-          "doc": "The preferred visit system for this instrument.\n",
+          "doc": "The preferred visit system for this instrument.",
           "name": "visit_system",
           "type": "int"
         },
@@ -366,7 +366,7 @@
           "type": "int"
         },
         {
-          "doc": "The sequence number of the first exposure that is part of this visit.\n",
+          "doc": "The sequence number of the first exposure that is part of this visit.",
           "name": "seq_num",
           "type": "int"
         },
@@ -394,12 +394,12 @@
           "type": "string"
         },
         {
-          "doc": "Approximate azimuth of the telescope in degrees during the visit. Can only be approximate since it is continually changing during an observation and multiple exposures can be combined from a relatively long period.\n",
+          "doc": "Approximate azimuth of the telescope in degrees during the visit. Can only be approximate since it is continually changing during an observation and multiple exposures can be combined from a relatively long period.",
           "name": "azimuth",
           "type": "float"
         },
         {
-          "doc": "Approximate zenith angle in degrees during the visit. Can only be approximate since it is continuously changing during an observation and multiple exposures can be combined from a relatively long period.\n",
+          "doc": "Approximate zenith angle in degrees during the visit. Can only be approximate since it is continuously changing during and observation and multiple visits can be combined from a relatively long period.\n",
           "name": "zenith_angle",
           "type": "float"
         }
@@ -435,7 +435,7 @@
       }
     },
     "visit_system": {
-      "doc": "A system of self-consistent visit definitions, within which each exposure should appear at most once.\nA visit may belong to multiple visit systems, if the logical definitions for those systems happen to result in the same set of exposures - the main (and probably only) example is when a single-snap visit is observed, for which both the \"one-to-one\" visit system and a \"group by header metadata\" visit system will define the same single-exposure visit.\n",
+      "doc": "A system of self-consistent visit definitions, within which each exposure should appear at most once.\nA visit may belong to multiple visit systems, if the logical definitions for those systems happen to result in the same set of exposures - the main (and probably only) example is when a single-snap visit is observed, for which both the \"one-to-one\" visit system and a \"group by header metadata\" visit system will define the same single-exposure visit. ",
       "keys": [
         {
           "name": "id",
@@ -459,7 +459,7 @@
     },
     "visit_system_membership": {
       "always_join": true,
-      "doc": "A many-to-many join table that relates visits to the visit_systems they belong to.\n",
+      "doc": "A many-to-many join table that relates visits to the visit_systems they belong to.",
       "populated_by": "visit",
       "requires": [
         "visit",
Repositories originally created at dimension universe 1 or earlier may have incorrect documentation strings.
Re-run butler migrate with the flag '--options allow_dimension_universe_mismatch=1' to bypass this check.
This will overwrite any customizations made to the dimension universe.


descdm@perlmutter:login35:/pscratch/sd/d/descdm/schema-migration-v7/daf_butler_migrate> butler migrate upgrade $REPO 352c30854bb0 --options allow_dimension_universe_mismatch=1


lsst.1fae088c80b6_py INFO: Locking exposure table
lsst.1fae088c80b6_py INFO: Generating data for day_obs table from exposure_table
lsst.1fae088c80b6_py INFO: Loading instrument definition LSSTCam-imSim from class lsst.obs.lsst.LsstCamImSim
lsst.1fae088c80b6_py INFO: Creating day_obs table
lsst.1fae088c80b6_py INFO: Populating day_obs table
lsst.1fae088c80b6_py INFO: Creating instrument index for day_obs table
lsst.1fae088c80b6_py INFO: Updating exposure table to reference day_obs table
lsst.1fae088c80b6_py INFO: Creating group table
lsst.1fae088c80b6_py INFO: Populating group table
lsst.1fae088c80b6_py INFO: Creating instrument index for group table
lsst.1fae088c80b6_py INFO: Updating exposure table to reference group table
lsst.1fae088c80b6_py INFO: Updating dimensions.json in ButlerAttributes
lsst.352c30854bb0_py INFO: Checking that this is an unmodified daf_butler universe 6 repo
lsst.352c30854bb0_py INFO: Adding can_see_sky column to exposure table
lsst.352c30854bb0_py INFO: Populating can_see_sky column
lsst.352c30854bb0_py INFO: ...can_see_sky values were set for all exposure records.
lsst.352c30854bb0_py INFO: Updating dimensions.json in ButlerAttributes


Checking looks good

 butler query-dimension-records --limit 10 $REPO exposure

  instrument   id day_obs  group physical_filter obs_id exposure_time dark_time observation_type observation_reason seq_num seq_start seq_end target_name science_program    tracking_ra       tracking_dec        sky_angle      azimuth    zenith_angle    has_simulated can_see_sky               timespan (TAI)   

butler migrate show-current --butler $REPO

attributes: lsst.daf.butler.registry.attributes.DefaultButlerAttributeManager 1.0.0 -> f22a777cf382

collections: lsst.daf.butler.registry.collections.synthIntKey.SynthIntKeyCollectionManager 2.0.0 -> 8c57494cabcc (head)

datasets: lsst.daf.butler.registry.datasets.byDimensions._manager.ByDimensionsDatasetRecordStorageManagerUUID 1.0.0 -> 2101fbf51ad3

datastores: lsst.daf.butler.registry.bridge.monolithic.MonolithicDatastoreRegistryBridgeManager 0.2.0 -> a07b3b60e369 (head)

dimensions: lsst.daf.butler.registry.dimensions.static.StaticDimensionRecordStorageManager 6.0.1 -> 1601d5973bf8

dimensions-config: daf_butler 7 -> 352c30854bb0 (head)

opaque: lsst.daf.butler.registry.opaque.ByNameOpaqueTableStorageManager 0.2.0 -> 77e5b803ad3f (head)


3 June 2024

MIgration of DECam

...