IP Library › Granted Patent US 9,996,341
Granted Patent B2
US 9,996,341 · App. 13/935,719 · Granted Jun 12, 2018

Infrastructure for the automation of the assembly of schema maintenance scripts

Inventors: Yoram Tal (Foster City, CA); Larisa Yogolnitser (Burlingame, CA); Ramzi Rabah (Hayward, CA); Patrick Gerald Wheeler (Belmont, CA); John Joseph Jakubik (Menlo Park, CA); Tuck Leong Chan (Orinda, CA)
Assignee: Oracle International Corporation
G06F8/71G06F8/65Y10S707/99933Y10S707/99953
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,996,341
App. No.
13/935,719
Granted
Jun 12, 2018
Kind
B2
Abstract

A method and apparatus to build a migration package. According to one embodiment of the invention, a plurality of programming elements are developed and stored in a configuration repository. The configuration repository also includes metadata used to describe each of the programming elements. Selected programming elements are placed in a set of one or more migration scripts to be stored in the migration package. The set of migration scripts may include a master configuration file and a driver file.

Claims (146)

1. A method comprising:

determining a specified migration process type and a database version of an end-user platform;

obtaining a master configuration file for the migration process type and the database version of the end-user platform;

selecting a driver file of a plurality of driver files based at least in part on the specified migration process type and the database version of the end-user platform, wherein

the selected driver file defines a software migration, and

the software migration comprises one or more selected migration steps of a plurality of migration steps corresponding to the specified migration process type and the database version of the end-user platform;

obtaining end-user specific information required by the selected driver file for performing the software migration, the required end-user specific information being determined based at least in part on the master configuration file;

executing the selected migration steps, wherein at least some of the migration steps are executed in parallel within separate corresponding threads;

determining whether the software migration failed, wherein

a determination that the software migration failed comprises

accessing a log that indicates an execution status of each of the selected migration steps, and

using the log to identify at least one failed migration step among the one or more selected migration steps;

determining that the at least one failed migration step is a fatal error that requires re-execution;

determining that at least one of the migration steps executed in parallel within a separate thread was executed successfully; and

re-executing the at least one failed migration step, wherein

the re-executing is performed after a resolution of a cause of a failure associated with the at least one failed migration step, and

the re-executing further comprises

parsing the selected driver file to determine the position of a first failed migration step, and

re-executing only the first failed migration step and not the at least one migration step that was executed successfully in the separate thread.

2. The method of claim 1 , wherein

the selected migration steps are created using one or more selected program elements, wherein

the one or more selected program elements are selected from a plurality of program elements,

the selection of the one or more selected program elements uses metadata, and

the metadata describes the plurality of programming elements.

3. The method of claim 2 , wherein

the metadata identifies

the migration process type,

the database version of an end-user platform, and

one or more migration steps needed to perform a software migration for the migration process type and the database version.

4. The method of claim 2 , wherein

the metadata and at least one of the plurality of programming elements are stored in a configuration repository.

5. The method of claim 2 , wherein

the executing the selected migration steps comprises executing one or more migration scripts, and

the one or more migration scripts comprises the selected program element(s).

6. The method of claim 1 , further comprising:

collecting user information prior to the selecting, wherein

the user information comprises

a user migration process type, and

a user database platform, and

at least one of the plurality of files is created based on the user information.

7. The method of claim 1 , further comprising:

receiving a migration package, wherein

the migration package comprises the plurality of files, and

the selected migration steps are generated prior to the receiving.

8. The method of claim 1 , wherein

the software migration corresponds to

a respective migration process type, and

a respective database version of an end-user platform; and

the selecting is based on a user migration process type and a user database platform.

9. The method of claim 1 , wherein

the selected migration steps are listed in a sequence in the selected file, wherein

each of the selected migration steps comprises a position in the sequence, and

the position describes an order in which the selected migration steps are executed.

10. The method of claim 1 , further comprising:

determining the cause of the failure associated with the at least one failed migration step, wherein

the determining the cause is performed prior to the re-executing.

11. A system comprising

one or more processors; and

a migration orchestrator, executable by the one or more processors, and configured to

determine a specified migration process type and a database version of an end-user platform;

obtain a master configuration file for the migration process type and the database version of the end-user platform;

select a driver file of a plurality of driver files based at least in part on the specified migration process type and the database version of the end-user platform, wherein

the selected driver file defines a software migration, and

the software migration comprises one or more selected migration steps of a plurality of migration steps corresponding to the specified migration process type and the database version of the end-user platform;

obtain end-user specific information required by the selected driver file for performing the software migration, the required end-user specific information being determined based at least in part on the master configuration file;

execute the selected migration steps, wherein at least some of the migration steps are executed in parallel within separate corresponding threads

determine whether the software migration failed, wherein

a determination that the software migration failed comprises

accessing a log that indicates an execution status of each of the selected migration steps, and

using the log to identify at least one failed migration step among the one or more selected migration steps;

determine that the at least one failed migration step is a fatal error that requires re-execution;

determine that at least one of the migration steps executed in parallel within a separate thread was executed successfully; and

perform a re-execution of the at least one failed migration step, wherein

the re-execution is performed after a resolution of a cause of a failure associated with the at least one failed migration step, and

the re-execution further comprises

parsing the selected driver file to determine the position of a first failed migration step, and

re-executing only the first failed migration step and not the at least one migration step that was executed successfully in the separate thread.

12. The system of claim 11 , wherein

the selected migration steps are created using one or more selected program elements, wherein

the one or more selected program elements are selected from a plurality of program elements,

the selection of the one or more selected program elements uses metadata, and

the metadata describes the plurality of programming elements.

13. The system of claim 12 , wherein

the metadata identifies

the migration process type,

the database version of an end-user platform, and

one or more migration steps needed to perform a software migration for the migration process type and the database version.

14. The system of claim 11 , wherein

the migration orchestrator is further configured to

collect user information prior to performing the selection, wherein

the user information comprises

a user migration process type, and

a user database platform, and

at least one of the plurality of files is created based on the user information.

15. The system of claim 11 , wherein

the migration orchestrator is further configured to

receive a migration package, wherein

the migration package comprises the plurality of files, and

the selected migration steps are generated prior to the receiving.

16. A computer program product comprising:

a plurality of instructions, comprising

a set of instructions, executable on a computer system, configured to

determine a specified migration process type and a database version of an end-user platform;

a set of instructions, executable on the computer system, configured to obtain a master configuration file for the migration process type and the database version of the end-user platform;

a set of instructions, executable on the computer system, configured to

select a driver file of a plurality of driver files based at least in part on the specified migration process type and the database version of the end-user platform, wherein

the selected driver file defines a software migration, and

the software migration comprises one or more selected migration steps of a plurality of migrations steps corresponding to the specified migration process type and the database version of the end-user platform;

a set of instructions, executable on the computer system, configured to obtain end-user specific information required by the selected driver file for performing the software migration, the required end-user specific information being determined based at least in part on the master configuration file;

a set of instructions, executable on the computer system, configured to execute the selected migration steps, wherein at least some of the migration steps are executed in parallel within separate corresponding threads;

a set of instructions, executable on the computer system, configured to

determine whether the software migration failed, wherein

a determination that the software migration failed comprises

accessing a log that indicates execution status of each of the selected migration steps, and

using the log to identify at least one failed migration step among the one or more selected migration steps;

a set of instructions, executable on the computer system, configured to determine that the at least one failed migration step is a fatal error that requires re-execution;

a set of instructions, executable on the computer system, configured to determine that at least one of the migration steps executed in parallel within a separate thread was executed successfully and

a set of instructions, executable on the computer system, configured to

re-execute the at least one failed migration step, wherein

the at least one of the selected migration steps is re-executed after a resolution of a cause of a failure associated with the at least one failed migration step, and

the at least one of the selected migration steps is re-executed by

parsing the selected driver file to determine the position of a first failed migration step, and

re-executing only the first failed migration step and not the at least one migration step that was executed successfully in the separate thread; and

a non-transitory computer-readable storage medium, wherein the instructions are encoded in the non-transitory computer-readable storage medium.

17. The computer program product of claim 16 ,

the selected migration steps are created using one or more selected program elements, wherein

the one or more selected program elements are selected from a plurality of program elements,

the selection of the one or more selected program elements uses metadata, and

the metadata describes the plurality of programming elements.

18. The computer program product of claim 17 , wherein

the metadata identifies

the migration process type,

the database version of an end-user platform, or

one or more migration steps needed to perform a software migration for the migration process type and the database version.

19. The computer program product of claim 16 , further comprising

a fifth set of instructions, executable on the computer system, and configured to

collect user information prior to performing the selection, wherein

the user information comprises

a user migration process type, and

a user database platform, and

at least one of the plurality of files is created based on the user information.

20. The computer program product of claim 16 , further comprising

a fifth set of instructions, executable on the computer system, and configured to

receive a migration package, wherein

the migration package comprises the plurality of files, and

the selected migration steps are generated prior to the receiving.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 20, 2017
From: ORACLE AMERICA, INC.
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 043914/0618 →
Continuity (4)
Continuation 09968170 · Sep 28, 2001
Continuation 11519672 · Sep 12, 2006
Continuation 13217816 · Aug 25, 2011
Related Publication 20130318497A1 · Nov 28, 2013