SlideShare a Scribd company logo
1 of 14
Download to read offline
Hackolade Tutorial
Tutorial – Compare and merge models
Copyright © 2016-2023 Hackolade 1
Model versioning
• Hackolade leverages GIT for powerful and flexible model versioning,
without reinventing the wheel
• Models may diverge in multiple parallel paths before converging
• Old check-out/check-in process which locks modifications by others,
is not flexible enough for agile sprints
• Example:
Copyright © 2016-2023 Hackolade 2
Compare and Merge
• Aims to facilitate merge of versions
• Aims to help validate schemas in
production
• e.g. auditing a production database can be done
automatically with the Hackolade Command-
Line Interface to reveal undocumented &
unvalidated data structures, or synchronize
environments (Dev, Test, UAT, Prod)
Copyright © 2016-2023 Hackolade 3
Compare and merge
• Subject can be:
• previous reference model,
• model issued from reverse-engineering of a database instance or some
other source,
• model that has evolved in a separate branch in GIT
• Etc.
• Models must be of the same target
• 2 distinct views:
• Compare view: 2 side-by-side panes
• Merge view: 3 panes including preview of the resulting merged model
Copyright © 2016-2023 Hackolade 4
Start compare and merge process
• From the Welcome page
• From Tools menu
Copyright © 2016-2023 Hackolade 5
Select the models
• Order of left/right is important
• Can be swapped easily
Copyright © 2016-2023 Hackolade 6
Compare models
• Synchronised scrolling
• Convention is that LEFT model is basis for comparison
• Addition: in the right model, not in the left model
• Deletion: in the left model, not in the right model
• Also includes cases where left model evolved in parallel to the right model
• Moves: not important in JSON – but convenient for humans
• Modifications: changes in properties of objects
• Objects are marked as additions, deletions, modifications or moves
Copyright © 2016-2023 Hackolade 7
Copyright © 2016-2023 Hackolade 8
Compare models
Copyright © 2016-2023 Hackolade 9
Model comparisons can generate Delta Models
Delta model can generate ALTER script
• Depending on the capabilities of the target
Copyright © 2016-2023 Hackolade 10
Merge models
• Accessed by toggling the display to the 3 pane view
• Middle pane = merge proposal
• Proposals can be selected and unselected
• When conflicting differences occur, the merge proposal uses by
default the right-hand model value, but can be unchecked by user
• Deletions are retained unless unchecked
Copyright © 2016-2023 Hackolade 11
Merge models
• Either create a new file or a new version of a (GIT-enabled) file
Copyright © 2016-2023 Hackolade 12
Reading material
• See Hackolade online documentation
• The Hackolade Blog
• This excellent new book:
MongoDB Data Modeling & Schema Design
• Many of the principles in the book are related to query
driven modeling based on access patterns!
• Hackolade’s on social media: LinkedIn page, Twitter page
• Download Hackolade studio for free
Copyright © 2016-2023 Hackolade 13
Questions?
Answers!
Copyright © 2016-2023 Hackolade 14

More Related Content

Similar to Tutorial Expert How-To - Compare and Merge

Contributions: what they are and how to find them
Contributions: what they are and how to find themContributions: what they are and how to find them
Contributions: what they are and how to find them
Pedro Cambra
 

Similar to Tutorial Expert How-To - Compare and Merge (20)

Hackolade Tutorial - part 3 - Query-driven data modeling based on access patt...
Hackolade Tutorial - part 3 - Query-driven data modeling based on access patt...Hackolade Tutorial - part 3 - Query-driven data modeling based on access patt...
Hackolade Tutorial - part 3 - Query-driven data modeling based on access patt...
 
Should I Be Writing My Own Web Experience Factory Builder? TECH-D13 from IBM ...
Should I Be Writing My Own Web Experience Factory Builder? TECH-D13 from IBM ...Should I Be Writing My Own Web Experience Factory Builder? TECH-D13 from IBM ...
Should I Be Writing My Own Web Experience Factory Builder? TECH-D13 from IBM ...
 
JavaScript design patterns introduction
JavaScript design patterns introductionJavaScript design patterns introduction
JavaScript design patterns introduction
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Architectural Design & Patterns
Architectural Design&PatternsArchitectural Design&Patterns
Architectural Design & Patterns
 
Weekly Meeting: Basic Design Pattern
Weekly Meeting: Basic Design PatternWeekly Meeting: Basic Design Pattern
Weekly Meeting: Basic Design Pattern
 
Tutorial Getting Started part 1 - Overview
Tutorial Getting Started part 1 - OverviewTutorial Getting Started part 1 - Overview
Tutorial Getting Started part 1 - Overview
 
Tutorial Workgroup - Working with Forks
Tutorial Workgroup - Working with ForksTutorial Workgroup - Working with Forks
Tutorial Workgroup - Working with Forks
 
Design pattern
Design patternDesign pattern
Design pattern
 
Overview of the AngularJS framework
Overview of the AngularJS framework Overview of the AngularJS framework
Overview of the AngularJS framework
 
AngularJS
AngularJSAngularJS
AngularJS
 
Ruby on Rails & Version Control
Ruby on Rails & Version ControlRuby on Rails & Version Control
Ruby on Rails & Version Control
 
Show Some Spine!
Show Some Spine!Show Some Spine!
Show Some Spine!
 
Andrii Sliusar "Module Architecture of React-Redux Applications"
Andrii Sliusar "Module Architecture of React-Redux Applications"Andrii Sliusar "Module Architecture of React-Redux Applications"
Andrii Sliusar "Module Architecture of React-Redux Applications"
 
Veda online
Veda onlineVeda online
Veda online
 
Design principles to modularise a monolith codebase.pptx
Design principles to modularise a monolith codebase.pptxDesign principles to modularise a monolith codebase.pptx
Design principles to modularise a monolith codebase.pptx
 
[2015/2016] Modern development paradigms
[2015/2016] Modern development paradigms[2015/2016] Modern development paradigms
[2015/2016] Modern development paradigms
 
Contributions: what they are and how to find them
Contributions: what they are and how to find themContributions: what they are and how to find them
Contributions: what they are and how to find them
 
ETAP - Project merge
ETAP - Project mergeETAP - Project merge
ETAP - Project merge
 
MVC Framework
MVC FrameworkMVC Framework
MVC Framework
 

More from PascalDesmarets1

More from PascalDesmarets1 (14)

Tutorial Advanced How-To - Oracle 23c Duality views
Tutorial Advanced How-To - Oracle 23c Duality viewsTutorial Advanced How-To - Oracle 23c Duality views
Tutorial Advanced How-To - Oracle 23c Duality views
 
Tutorial Expert How-To - Docker-based automation
Tutorial Expert How-To - Docker-based automationTutorial Expert How-To - Docker-based automation
Tutorial Expert How-To - Docker-based automation
 
Tutorial Getting Started part 4 - Domain-Driven Data Modeling
Tutorial Getting Started part 4 - Domain-Driven Data ModelingTutorial Getting Started part 4 - Domain-Driven Data Modeling
Tutorial Getting Started part 4 - Domain-Driven Data Modeling
 
Tutorial Expert How-To - Create a model for Avro schemas
Tutorial Expert How-To - Create a model for Avro schemasTutorial Expert How-To - Create a model for Avro schemas
Tutorial Expert How-To - Create a model for Avro schemas
 
Tutorial Expert How-To - Verify Data Model
Tutorial Expert How-To - Verify Data ModelTutorial Expert How-To - Verify Data Model
Tutorial Expert How-To - Verify Data Model
 
Tutorial Expert How-To - Naming Conventions
Tutorial Expert How-To - Naming ConventionsTutorial Expert How-To - Naming Conventions
Tutorial Expert How-To - Naming Conventions
 
Tutorial Expert How-To - Custom properties
Tutorial Expert How-To - Custom propertiesTutorial Expert How-To - Custom properties
Tutorial Expert How-To - Custom properties
 
Tutorial Expert How-To - Add reusable Definitions
Tutorial Expert How-To - Add reusable DefinitionsTutorial Expert How-To - Add reusable Definitions
Tutorial Expert How-To - Add reusable Definitions
 
Hackolade Tutorial - part 12 - Create a REST API model
Hackolade Tutorial - part  12 - Create a REST API modelHackolade Tutorial - part  12 - Create a REST API model
Hackolade Tutorial - part 12 - Create a REST API model
 
Hackolade Tutorial - part 8 - Import or reverse-engineer.pdf
Hackolade Tutorial - part 8 - Import or reverse-engineer.pdfHackolade Tutorial - part 8 - Import or reverse-engineer.pdf
Hackolade Tutorial - part 8 - Import or reverse-engineer.pdf
 
Hackolade Tutorial - part 6 - Add choice, conditional, pattern fields.pdf
Hackolade Tutorial - part 6 - Add choice, conditional, pattern fields.pdfHackolade Tutorial - part 6 - Add choice, conditional, pattern fields.pdf
Hackolade Tutorial - part 6 - Add choice, conditional, pattern fields.pdf
 
Hackolade Tutorial - part 4 - Create your first data model
Hackolade Tutorial - part 4 - Create your first data modelHackolade Tutorial - part 4 - Create your first data model
Hackolade Tutorial - part 4 - Create your first data model
 
Hackolade Tutorial - part 2 - Overview of JSON and JSON schema
Hackolade Tutorial - part 2 - Overview of JSON and JSON schemaHackolade Tutorial - part 2 - Overview of JSON and JSON schema
Hackolade Tutorial - part 2 - Overview of JSON and JSON schema
 
Hackolade Tutorial - part 1 - What is a data model
Hackolade Tutorial - part 1 - What is a data modelHackolade Tutorial - part 1 - What is a data model
Hackolade Tutorial - part 1 - What is a data model
 

Recently uploaded

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Recently uploaded (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

Tutorial Expert How-To - Compare and Merge

  • 1. Hackolade Tutorial Tutorial – Compare and merge models Copyright © 2016-2023 Hackolade 1
  • 2. Model versioning • Hackolade leverages GIT for powerful and flexible model versioning, without reinventing the wheel • Models may diverge in multiple parallel paths before converging • Old check-out/check-in process which locks modifications by others, is not flexible enough for agile sprints • Example: Copyright © 2016-2023 Hackolade 2
  • 3. Compare and Merge • Aims to facilitate merge of versions • Aims to help validate schemas in production • e.g. auditing a production database can be done automatically with the Hackolade Command- Line Interface to reveal undocumented & unvalidated data structures, or synchronize environments (Dev, Test, UAT, Prod) Copyright © 2016-2023 Hackolade 3
  • 4. Compare and merge • Subject can be: • previous reference model, • model issued from reverse-engineering of a database instance or some other source, • model that has evolved in a separate branch in GIT • Etc. • Models must be of the same target • 2 distinct views: • Compare view: 2 side-by-side panes • Merge view: 3 panes including preview of the resulting merged model Copyright © 2016-2023 Hackolade 4
  • 5. Start compare and merge process • From the Welcome page • From Tools menu Copyright © 2016-2023 Hackolade 5
  • 6. Select the models • Order of left/right is important • Can be swapped easily Copyright © 2016-2023 Hackolade 6
  • 7. Compare models • Synchronised scrolling • Convention is that LEFT model is basis for comparison • Addition: in the right model, not in the left model • Deletion: in the left model, not in the right model • Also includes cases where left model evolved in parallel to the right model • Moves: not important in JSON – but convenient for humans • Modifications: changes in properties of objects • Objects are marked as additions, deletions, modifications or moves Copyright © 2016-2023 Hackolade 7
  • 8. Copyright © 2016-2023 Hackolade 8 Compare models
  • 9. Copyright © 2016-2023 Hackolade 9 Model comparisons can generate Delta Models
  • 10. Delta model can generate ALTER script • Depending on the capabilities of the target Copyright © 2016-2023 Hackolade 10
  • 11. Merge models • Accessed by toggling the display to the 3 pane view • Middle pane = merge proposal • Proposals can be selected and unselected • When conflicting differences occur, the merge proposal uses by default the right-hand model value, but can be unchecked by user • Deletions are retained unless unchecked Copyright © 2016-2023 Hackolade 11
  • 12. Merge models • Either create a new file or a new version of a (GIT-enabled) file Copyright © 2016-2023 Hackolade 12
  • 13. Reading material • See Hackolade online documentation • The Hackolade Blog • This excellent new book: MongoDB Data Modeling & Schema Design • Many of the principles in the book are related to query driven modeling based on access patterns! • Hackolade’s on social media: LinkedIn page, Twitter page • Download Hackolade studio for free Copyright © 2016-2023 Hackolade 13