Data Migration Framework Using In-Memory Class Coordination
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Complex data migrations during software system upgrades are technically complex, time-consuming, and risky due to the need for custom code that often duplicates business logic, especially when the database schema changes.
Innovation Solution
A data migration framework that loads both old and new versions of production software classes, allowing them to run side-by-side, share data, and coordinate during the upgrade process, eliminating the need for custom SQL queries or duplicated logic by using in-memory applications to read, manipulate, and persist data.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If custom code is written for each migration using third-party tools, then data migration can be performed, but the process becomes technically complex and time-consuming
Solution Approach 1:
The patent creates a copy of the target database schema in the source database, allowing migrations to be tested and validated against the copied schema before being applied to the actual target database. This eliminates the need for complex custom validation code while ensuring migration reliability.
Solution Approach 2:
The patent performs preliminary actions by creating a copy of the target schema and pre-applying migrations to it before the actual migration. This allows the system to validate migration scripts and detect issues beforehand, reducing the need for complex error handling and rollback mechanisms.
2Reliability
If custom code is written for each migration, then data migration can be performed, but implementation becomes time-consuming
Solution Approach 1:
By creating a copy of the target schema and pre-applying migrations to it, the system can validate migration scripts automatically without requiring time-consuming custom validation code. This significantly reduces implementation time while maintaining reliability.
Solution Approach 2:
The system performs self-validation by automatically testing migration scripts against the copied target schema. This eliminates the need for manual code review and testing, reducing implementation time while ensuring reliability through automated validation.
3Productivity
If custom code is written for each migration, then data migration can be performed, but the process involves risk
Solution Approach 1:
The patent creates a copy of the target database schema and applies migrations to this copy before the actual migration. This allows the system to detect and correct issues in a safe environment, significantly reducing the risk to the actual data migration while maintaining productivity.
Solution Approach 2:
The system performs preliminary anti-action by pre-validating migration scripts against the copied schema to detect and prevent potential failures before they affect the actual target database. This proactive approach reduces migration risk while preserving the ability to perform complex migrations.
4Ease of manufacture
If existing business logic is not reused, then migrations can be implemented with third-party tools, but business logic is duplicated
Solution Approach 1:
The patent makes the migration framework universal by allowing it to work with existing business logic and data access layers. The system can reuse existing ORM configurations, connection strings, and business rules, eliminating the need to duplicate logic while maintaining ease of implementation.
Data Source
AI summary
Various embodiments herein each include at least one of systems, methods, and software for data migration, such as when migrating a database from one form to a next and as may be performed at a time of software system version migration. One example embodiment, in the form of a method, includes loading a database migration script that includes a prior class from a software system prior to an upgrade of the software system and a new class from the software system after the upgrade to the software system. The method proceeds by then calling methods of the prior class to copy database data from database tables impacted by the database migration script to a memory device and executing the database migration script. The method then calls methods of the new class to copy the database data from the memory device back to the database.


