US 12,072,853 B2
Database schema branching workflow, with support for data, keyspaces and VSchemas
Sam George Lambert, San Francisco, CA (US); Patrick A. Reynolds, Chapel Hill, NC (US); Shlomo Noach, Mizpe Aviv (IL); Nicholas Diego Van Wiggeren, Seattle, WA (US); and Jordan Tyler Williams, San Francisco, CA (US)
Assigned to PlanetScale, Inc., Mountain View, CA (US)
Filed by PlanetScale, Inc., Mountain View, CA (US)
Filed on Apr. 21, 2023, as Appl. No. 18/138,001.
Application 18/138,001 is a continuation of application No. 17/987,748, filed on Nov. 15, 2022, granted, now 11,669,504.
Application 17/987,748 is a continuation of application No. 17/707,884, filed on Mar. 29, 2022, granted, now 11,531,653, issued on Dec. 20, 2022.
Claims priority of provisional application 63/167,403, filed on Mar. 29, 2021.
Prior Publication US 2023/0267103 A1, Aug. 24, 2023
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 16/21 (2019.01)
CPC G06F 16/213 (2019.01) [G06F 16/219 (2019.01)] 41 Claims
OG exemplary drawing
 
1. A computer implemented method for maintaining version control for databases in a database version tracking system, with branching support for database schemas, the method comprising:
creating a first branch of a main database from the database version tracking system;
wherein the first branch further comprises a copy of the main database in a specific state, as recorded in the database version tracking system, the copy being created in a workspace isolated from the database version tracking system, the copy comprising at least a copy of a schema of the main database in a specific state;
responsive to receiving a control signal from a user associated with the first branch indicating to merge a changed version of the first branch back into the database version tracking system, determining differences between a current version of the main database as tracked by the database version tracking system and the changed version of the first branch;
wherein determining differences between the current version of the database and the changed version of the first branch further comprises generating at least one schema diff;
determining, from the at least one schema diff, whether merging the changed version of the first branch back into the database version tracking system creates a conflict; and
responsive to determining that merging the changed version of the first branch back into the database version tracking system does not create a conflict, merging the changed version of the first branch back into the database version tracking system;
wherein merging the changed version of the first branch back into the database version tracking system further comprises performing at least one schema operation from a group of schema operations consisting of: create table, drop table and alter table, the at least one schema operation being indicated by the at least one schema diff.