System, method and computer program product for database change management
AssigneeDatical, Inc.
InventorsCharles Steven Suehs, Peter J. Pickerill, Robert E. Reeves, Daniel P. Nelson
Life of this patent
Estimating the term…
Abstract
Database servers may maintain a database according to a database schema. A database change management system can include a profile service configured to collect database profile information and a simulation service configured to receive a set of changes to be simulated for the database and simulate an application of the set of changes to the database. A forecast service can be configured to receive a result of a simulation from the simulation service and database profile information and generate a report indicative of a prediction of a failure or success of an implementation of the set of changes.
Claims20
A computer program product comprising a non-transitory, computer-readable medium storing computer-executable instructions, the computer-executable instructions comprising instructions for:
- opening a connection to a target database;
- collecting a snapshot of a current state of a database schema for the target database;
- receiving a set of proposed changes to the database schema of the target database;
- building an in-memory model of the database schema of the target database based on the snapshot and the changes, the in-memory model of the database schema comprising a set of model objects which are related according to the database schema, wherein building the in-memory model comprises loading an initial model in memory and applying the first set of changes starting with the initial model;
- accessing a set of rules comprising rules applied by the target database;
- simulating an application of the set of proposed changes to the target database to create an updated version of the in-memory model, the simulating comprising;
- selecting a change from the set of proposed changes as a selected change;
- and
- mapping the selected change to a command on the in-memory model to update the in-memory model according to the selected change;
- applying the set of rules to the updated version of the in-memory model to determine if the set of proposed changes violates the set of rules and, based on a determination that the command violates the set of rules, logging an error in association with the selected change and a state of the in-memory model;
- determining if a result of simulating the application of the set of proposed changes includes at least one error indicative of failure and, generating a report indicative of a prediction of a failure if the result of simulating the application of the set of proposed changes includes at least one error indicative of failure, and deploying the set of proposed changes to a target environment if the result of simulating the application of the set of proposed changes does not include at least one error indicative of failure.
A computer program product comprising a non-transitory, computer-readable medium storing computer-executable instructions, the computer-executable instructions comprising instructions for:
- opening a connection from a first computing device to a database maintained by a database server;
- querying the database for a current state of a database schema;
- collecting a snapshot of the database schema for the database, the snapshot comprising a first set of changes representing the current state of the database;
- receiving a set of proposed changes to the database schema;
- building an in-memory model of the database schema according to the first set of changes, the in-memory model of the database schema comprising a set of model objects modelling tables, columns, primary key constraints, foreign key constraints, and data constraints on the columns of the database, the set of model objects related according to the database schema of the database, wherein building the in-memory model comprises loading an initial model in memory and applying the first set of changes starting with the initial model
- accessing the in-memory model of the database schema;
- accessing a set of rules comprising rules modelling rules applied by the database and additional user defined rules;
- simulating an application the set of proposed changes to the database, the simulating comprising:
- selecting a change from the set of proposed changes as a selected change;
- mapping the selected change to a command on the in-memory model to update the in-memory model according to the selected change;
- determining if the command violates the set of rules;
- based on a determination that the command violates the set of rules, logging an error in association with the selected change and a state of the in-memory model;
- determining if a result of simulating the application of the set of proposed changes includes at least one error indicative of failure:
- if the result of simulating the application of the set of proposed changes includes at least one error indicative of failure, generating a report indicative of a prediction of a failure, the report including a context of the at least one error indicative of failure;
- and
- if the result of simulating the application of the set of proposed changes does not include at least one error indicative of failure, deploying the set of proposed changes to the database based on a determination that the application of the set of proposed changes would be successful.
Dependencies are inferred from the claim text.