Information Architecture (IA) Change Process
How to make data changes clear
Information Architecture (IA) Change Process
How to make data changes clear
Why?
Why?
How?
When to follow new IA change process
For large data changes, not for small schema changes!
DB Change | Follow IA Change Process? |
Delete a completely deprecated table | No |
Removing completely deprecated fields | No |
Adding small table for internal use not needed for reporting | No |
Adding a few additional fields | Probably, use good judgement |
Refactor: moving actively used columns to a different table | Yes |
Adding complex tables that represent core business data | Yes |
Refactor: renaming and replacing active used columns | Yes |
What is a dot file?
What is a dot file?
Arrows (we need agreed on legend 1:1, 1:Many)
Dir
Proposed Legend
What is a dot file? Text Input -> Image Diagram Output
Example: Contact Cleanup
Refactoring data, attributes, & associations of Contact Models
Textual Diff
ZOOMED IN!
Refactoring out Phone Numbers
The Previous Iteration is Wrong
Issues:
Improvements
ZOOMED IN!
Workflow
1. Generate or update initial model on dev branch
* generate dot file: `FOCUS=true VERBOSE=true OUTPUT=doc/customers.dot rake diagram:models:customers`
* generate image: `neato -Tpng doc/customers.dot > doc/customers.png`
* check in the un-edited DOT & image files
* commit to dev branch
* this will serve as your before to diff against later
2. Create a feature branch to work on your changes
* new branch: `git checkout -b feature/db_phone_change`
* edit to reflect your changes: `open doc/customer.dot`
* convert updated DOT file to updated image: `neato -Tpng doc/customer.dot > doc/customers.png`
* view PNG & Refactor until happy
* create a PR and upload the before and after images, diff will be automatically created for the DOT file changes.
Workflow: Initial Model
DB Refactoring