From 4da3f0afba8773cc2484e0165796f05925d0cb90 Mon Sep 17 00:00:00 2001 From: miteruzo Date: Fri, 26 Jun 2026 00:51:40 +0900 Subject: [PATCH] #306 --- ...626010000_backfill_initial_material_versions.rb | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/backend/db/migrate/20260626010000_backfill_initial_material_versions.rb b/backend/db/migrate/20260626010000_backfill_initial_material_versions.rb index 7ffe9f7..45b95a5 100644 --- a/backend/db/migrate/20260626010000_backfill_initial_material_versions.rb +++ b/backend/db/migrate/20260626010000_backfill_initial_material_versions.rb @@ -1,3 +1,5 @@ +require 'json' + class BackfillInitialMaterialVersions < ActiveRecord::Migration[8.0] class MigrationMaterial < ActiveRecord::Base self.table_name = 'materials' @@ -143,7 +145,7 @@ class BackfillInitialMaterialVersions < ActiveRecord::Migration[8.0] file_content_type: blob.content_type, file_byte_size: blob.byte_size, file_checksum: blob.checksum, - file_sha256: blob.metadata['sha256'] + file_sha256: blob_metadata(blob)['sha256'] } end end @@ -156,4 +158,14 @@ class BackfillInitialMaterialVersions < ActiveRecord::Migration[8.0] file_checksum: nil, file_sha256: nil } end + + def blob_metadata blob + metadata = blob.metadata + return metadata if metadata.is_a?(Hash) + return { } if metadata.blank? + + JSON.parse(metadata) + rescue JSON::ParserError + { } + end end