-
Notifications
You must be signed in to change notification settings - Fork 1
Migration Strategy
OwenGalvia edited this page Jan 31, 2025
·
4 revisions
- removing an option from a domain node or concept list this would mean some resources in the stale data would error on save because the new model wouldn't recognize the id. We'd need to be advised on how to handle this data either deleting it or replacing these values with another valid option.
- changing the collection a concept/concept-list use if we change collections to one that no longer contains the previous concepts we can't import old data. We'd need to map previous concepts with their equivalent in the new list
- changing a datatype Data needs converted based on the change that's occurring
- changing cardinality changing whether a node accepts one or many tiles needs data placed in an array or taken out. If we go from many to single we will also need guidance on how to pick the data we keep and which to remove
---
title: Overview
---
%%{
init: {
"theme": "base",
"themeVariables": {
"primaryColor": "#4C566A",
"primaryTextColor": "black",
"primaryBorderColor": "#2E3440",
"lineColor": "#8FBCBB",
"secondaryColor": "#404046",
"tertiaryColor": "#404046",
"edgeLabelBackground": "#ccccff"
}
}
}%%
graph LR
key ~~~ resource_model
resource_model((Arches Resource Model)):::data -- make stale copy --> export_model:::arches
export_model --> staleResourceModelJson[Json for stale model data]:::data
resource_model --> export_data:::arches
export_data --> staleResourceData[json with stale resource data]:::data
staleResourceData --> identification:::ident
subgraph identification
compare_nodes:::maybe
detection_functions[Other Functions to determine necessary tansformations]:::unstarted
compare_nodes --> new_nodes:::data
compare_nodes --> deleted_nodes:::data
compare_nodes --> datatype_changes:::data
datatype_changes --> handle_datatype_changes:::maybe
deleted_nodes --> handle_deleted_nodes:::unready
end
handle_datatype_changes --> transformations
handle_deleted_nodes --> transformations
identification --> transformations:::trans
subgraph transformations
domain_to_concept:::ready
concept_to_domain:::ready
allow_many:::ready
data_checker:::unready
replace_node:::maybe
remove_tile:::ready
remove_resources:::ready
remove_node:::unready
find_node_values:::ready
replace_ids:::unstarted
more[more data type changes]:::unstarted
end
data_checker --> refinedData[Transformed Data]:::data
transformations --> refinedData[Transformed Data]:::data
refinedData --> import_data[import data]:::arches
import_data --> result{result}:::meta
result -.error.-> staleResourceData
staleResourceData -..-> reverse_migration:::ready
reverse_migration -..-> resource_model
result -- success --> updated_resource_model(((New graph JSON in pkg))):::data
import_model:::arches --> updated_resource_model
subgraph key
arches[provided by arches]:::arches
arches ~~~ ready[method which is ready now]:::ready
ready ~~~ maybe[method made but not adequately tested]:::maybe
maybe ~~~ unready[method that is started but not fit for purpose]:::unready
unready ~~~ unstarted[method/s we have not begun making]:::unstarted
unstarted ~~~ data[data]:::data
end
%%cssStyles
classDef arches fill:blue
classDef ready fill:lime
classDef maybe fill:yellow
classDef unready fill:orange
classDef unstarted fill:red
classDef data fill:silver
classDef meta fill:skyblue
classDef ident fill:violet
classDef trans fill:lightpink