Application update with data-preserving rollback
Systems and methods include execution of a first application associated with a first access schema and a first data model in a data schema of a database system. While the first application is receiving incoming user requests, the first data model in the data schema is extended based on a second data model of a second application, a second access schema of the second application is prepared in the database system, data of the first data model in the data schema is migrated to the second data model, data of the first data model in the data schema is replicated to the second data model while the first application is receiving incoming user requests, the second application is executed, the incoming user requests are re-directed to be received by the executing second application, and the replication of data of the first data model in the data schema to the second data model is stopped. While the second application is receiving incoming user requests, data of the second data model in the data schema is replicated to the first data model.
1. A system comprising:
a memory storing processor-executable program code; and
at least one processing unit to execute the processor-executable program code to cause the system to:
execute a first application to receive incoming user requests, the first application associated with a first access schema and a first data model in a data schema of a database system;
while the first application is receiving incoming user requests:
extend the first data model in the data schema based on a second data model of a second application;
prepare a second access schema of the second application in the database system;
migrate data of the first data model in the data schema to the second data model;
execute a first one or more database triggers to replicate data of the first data model in the data schema to the second data model while the first application is receiving incoming user requests;
execute the second application; and
re-direct the incoming user requests to be received by the executing second application; and
while the second application is receiving incoming user requests:
execute a second one or more database triggers to replicate data of the second data model in the data schema to the first data model.
2. A system according to claim 1 , wherein the at least one processing unit is to execute the processor-executable program code to cause the system to:
while the second application is receiving incoming user requests:
re-direct the incoming user requests to be received by the first application.
3. A system according to claim 2 , wherein the at least one processing unit is to execute the processor-executable program code to cause the system to:
after re-directing the incoming user requests to be received by the first application,
modify the second application;
modify the second access schema of the second application in the database system;
migrate data of the first data model in the data schema to the modified second data model;
execute a third one or more database triggers to replicate data of the first data model in the data schema to the modified second data model while the first application is receiving incoming user requests; and
execute the modified second application; and
re-direct the incoming user requests to be received by the executing modified second application.
4. A system according to claim 2 , wherein the at least one processing unit is to execute the processor-executable program code to cause the system to:
while the first application is receiving incoming user requests, delete the second access schema and the second data model in the data schema from the database system.
5. A system according to claim 2 , wherein the incoming user requests are re-directed to be received by the first application in response to detection of an error associated with execution of the second application.
6. A system according to claim 1 , wherein the at least one processing unit is to execute the processor-executable program code to cause the system to:
while the second application is receiving incoming user requests, delete the first access schema and the first data model in the data schema from the database system.
7. A system according to claim 6 , wherein the at least one processing unit is to execute the processor-executable program code to cause the system to:
after deletion of the first access schema and the first data model in the data schema from the database system:
toggle on a feature of the second application;
execute the second application to generate records while the feature is toggled on; and
toggle off the feature and mark the records as unreadable.
8. A computer-implemented method comprising:
executing a first application associated with a first access schema and a first data model in a data schema of a database system;
while the first application is receiving incoming user requests:
extending the first data model in the data schema based on a second data model of a second application;
preparing a second access schema of the second application in the database system;
migrating data of the first data model in the data schema to the second data model;
replicating data of the first data model in the data schema to the second data model while the first application is receiving incoming user requests;
executing the second application;
re-directing the incoming user requests to be received by the executing second application; and
stopping the replication of data of the first data model in the data schema to the second data model; and
while the second application is receiving incoming user requests:
replicating data of the second data model in the data schema to the first data model.
9. A method according to claim 8 , further comprising:
while the second application is receiving incoming user requests:
re-directing the incoming user requests to be received by the first application; and
stopping the replication of data of the second data model in the data schema to the first data model.
10. A method according to claim 9 , further comprising:
after re-directing the incoming user requests to be received by the first application,
modifying the second application;
modifying the second access schema of the second application in the database system;
migrating data of the first data model in the data schema to the modified second data model;
replicating data of the first data model in the data schema to the modified second data model while the first application is receiving incoming user requests; and
executing the modified second application; and
re-directing the incoming user requests to be received by the executing modified second application.
11. A method according to claim 9 , further comprising:
while the first application is receiving incoming user requests, deleting the second access schema and the second data model in the data schema from the database system.
12. A method according to claim 9 , wherein the incoming user requests are re-directed to be received by the first application in response to detection of an error associated with execution of the second application.
13. A method according to claim 8 , further comprising:
while the second application is receiving incoming user requests, deleting the first access schema and the first data model in the data schema from the database system.
14. A method according to claim 13 , further comprising:
after deletion of the first access schema and the first data model in the data schema from the database system:
toggling on a feature of the second application;
executing the second application to generate records while the feature is toggled on; and
toggling off the feature and marking the records as unreadable.
15. A computer-readable medium storing processor-executable program code, the program code executable by a computing system to:
execute a first application associated with a first access schema and a first data model in a data schema of a database system;
while the first application is receiving incoming user requests:
extend the first data model in the data schema based on a second data model of a second application;
prepare a second access schema of the second application in the database system;
migrate data of the first data model in the data schema to the second data model;
replicate data of the first data model in the data schema to the second data model while the first application is receiving incoming user requests;
execute the second application;
re-direct the incoming user requests to be received by the executing second application; and
stop the replication of data of the first data model in the data schema to the second data model; and
while the second application is receiving incoming user requests:
replicate data of the second data model in the data schema to the first data model.
16. A medium according to claim 15 , the program code executable by a computing system to:
while the second application is receiving incoming user requests:
re-direct the incoming user requests to be received by the first application; and
stop the replication of data of the second data model in the data schema to the first data model.
17. A medium according to claim 16 , the program code executable by a computing system to:
after re-directing the incoming user requests to be received by the first application,
modify the second application;
modify the second access schema of the second application in the database system;
migrate data of the first data model of the data schema to the modified second data model;
replicate data of the first data model in the data schema to the modified second data model while the first application is receiving incoming user requests; and
execute the modified second application; and
re-direct the incoming user requests to be received by the executing modified second application.
18. A medium according to claim 16 , wherein the incoming user requests are re-directed to be received by the first application in response to detection of an error associated with execution of the second application.
19. A medium according to claim 16 , the program code executable by a computing system to:
while the second application is receiving incoming user requests, deleting the first access schema and the first model in the data schema from the database system.
20. A medium according to claim 19 , the program code executable by a computing system to:
after deletion of the first access schema and the first data model in the data schema from the database system:
toggle on a feature of the second application;
execute the second application to generate records while the feature is toggled on; and
toggle off the feature and marking the records as unreadable.