
Migration Utilities for RDS to JSON Conversion
Source:R/migration-utilities.R
boilerplate_migrate_to_json.Rd
Functions to help migrate from individual RDS files to unified JSON structure Migrate boilerplate Database from RDS to JSON
Usage
boilerplate_migrate_to_json(
source_path,
output_path,
format = c("unified", "separate"),
validate = TRUE,
backup = TRUE,
quiet = FALSE
)
Arguments
- source_path
Path to directory containing RDS files or single RDS file
- output_path
Path where JSON files should be saved
- format
Output format: "unified" (single JSON) or "separate" (one per category)
- validate
Logical. Validate against JSON schema after conversion? Default is TRUE.
- backup
Logical. Create backup of original files? Default is TRUE.
- quiet
Logical. Suppress progress messages? Default is FALSE.
Value
List with migration results containing:
migrated
: Character vector of successfully migrated fileserrors
: List of any errors encountered during migrationvalidation
: Validation results if validate=TRUE
Details
Comprehensive migration tool that converts existing RDS-based boilerplate databases to JSON format. Supports both unified (single file) and separate (multiple files) output formats with optional schema validation.
The migration process:
Scans source directory for RDS files
Creates timestamped backup if requested
Converts RDS to JSON format
Validates against schema if requested
Reports results and any issues
The "unified" format creates a single JSON file containing all categories, which is recommended for version control and collaborative workflows.
Examples
# \donttest{
# Create temporary directories for example
source_dir <- tempfile()
output_dir <- tempfile()
dir.create(source_dir)
dir.create(output_dir)
# Create sample RDS file
sample_db <- list(
name = "Example Measure",
description = "An example for migration",
items = c("item1", "item2")
)
saveRDS(sample_db, file.path(source_dir, "measures_db.rds"))
# Migrate from RDS to JSON
results <- boilerplate_migrate_to_json(
source_path = source_dir,
output_path = output_dir,
format = "unified",
validate = FALSE
)
#>
#> ── Migrating 1 RDS file to JSON ──
#>
#> ℹ Creating backup in /var/folders/q9/lkcn14l97mb6mkhbxsxrpr4w0000gn/T//RtmpyUdfgu/filea2ad29d19559/backup_20250621_155700
#> ℹ Processing measures_db.rds
#> ℹ Saving unified database to boilerplate_unified.json
#>
#> ── Migration Summary
#> ✔ Migrated 1 database
# Check results
if (length(results$errors) == 0) {
message("Migration successful!")
} else {
print(results$errors)
}
#> Migration successful!
# Clean up
unlink(source_dir, recursive = TRUE)
unlink(output_dir, recursive = TRUE)
# }