Version control systems (VCS) are not a part of database systems by default. However, Toad Edge® offers a way to apply version control to a database by mapping it to a file system as a folder structure where each object is represented by a JSON file. The resulting structure is referred to as a "repository". It can be tracked with any VCS and it can be also synchronized with any other database of the same platform and version using Schema Compare. Repository is available for MySQL and MariaDB.
To map a database to a file system
- Right-click a database in Object Explorer and select Repository | Map Database
- Enter the path to the destination folder where the database folder structure should be created
Your database is now mapped to the file system. The path to the folder structure is displayed next to the database icon in Object Explorer.
Object Explorer also displays the synchronization status of all objects in the database.
The following table lists all possible states indicated by the object decorators and the action suggested once you synchronize database and repository:
|A new object was added to database that is not present in repository||Change target||You added a new object to your database. Toad Edge assumes you want to add the object to your repository as well|
|An object was deleted from repository, but it still exists in database||Change source||You deleted an object in your repository. Toad Edge assumes you want to delete the object from your database as well|
|/||An object was probably modified in database / repository||None||You modified an object in your database / repository. These changes have been detected by Toad Edge but they have not been confirmed yet. To confirm and resolve them, Synchronize the database and the repository|
|/||An object was confirmed to be modified in database / repository||Change source / target||You modified an object in your database / repository and synchronized them afterwards. Toad Edge assumes that when you modify an object on one side you will want to modify on the other side as well.|
|An object was possibly modified in both database and repository||None||You modified an object in both your database and your repository. These changes have been detected by Toad Edge but they have not been confirmed yet. To confirm and resolve them, Synchronize the database and the repository|
|An object was confirmed to be modified in both database and repository||Change both||You modified an object in your database / repository and synchronized them afterwards. Toad Edge assumes that when you modify an object on both sides, you will want to decide which specific changes should be applied in the source and the target|
|An object has not been added to repository yet, its state is unknown||Change target||You mapped your database to a file system (repository), but you have not synchronized them yet. Synchronize the database and the repository in order to copy the objects from your database to the repository|
To remove mapping of a database to a file system
- Right-click a database in Object Explorer and select Repository | Remove Mapping
- Confirm the removal. Optionally, you can check the Also delete file on disk checkbox to delete the remaining files in the file system
To synchronize a mapped database with a repository
- Right-click a database that is mapped to a file system in Object Explorer and select Repository | Synchronize
The process of synchronization of a database and a repository is very similar to Schema Compare.
See About Schema Compare to learn more about the synchronization process.
NOTE: When synchronizing a database and a repository, it is currently not possible to use the Change both resolution action to resolve specific differences.