We don’t say that quite often, but here is an update to end all updates, one of the biggest bulks of new features and enhancements that dbForge Studio for MySQL has ever seen. Your favorite IDE for MySQL and MariaDB is as strong as ever, filled to the brim with nifty features that will definitely make your daily work a breeze. And it’s here that we’re proud to introduce the integration of source control—we believe it’s going to be a game-changer for you. Without further ado, let’s get started!
- Source Control
- Code Completion & Syntax Check
- Database Design
- Schema Compare
- Data Compare
- Find Invalid Objects
- Security Manager
- General Features
If we had to choose one killer feature that takes dbForge Studio for MySQL truly ahead of the competition, it would undoubtedly be Source Control. It simplifies and streamlines team-driven database management, delivering support for all popular version control systems. Azure DevOps Server, Apache Subversion (SVN), TFVC, Git (including GitHub, GitLab, and Bitbucket), Mercurial (Hg), Perforce (P4), and SourceGear Vault—we’ve got all of them covered. You only need to connect your database to the version control of your choice, and you’ll be able to do the following.
- Version-control database schemas and static table data
- Manage database versioning under the dedicated or shared development model
- Commit and revert changes in databases with dependency awareness
- Pull remote changes to your local database copy
- Review and resolve conflicts
- Run quick comparisons of database versions
- View the history of changes
Now we’d love to take you on a brief tour and showcase the capabilities of Source Control in detail.
Select a version control system
Everything gets started when you open the Studio and connect to the database that you’d like to link to Source Control. Next, you go to Database Explorer, right-click your database and proceed to Source Control > Link Database to Source Control from the shortcut menu. This will open the Link Database to Source Control dialog, where you’ll be able to select a version control system and specify the repository.
By the way, if you want to version-control your database locally, you can select a working folder as your repository. A working folder is a set of SQL script files that represent your database.
You’ll also need to select a preferred development model: either dedicated or shared. In the former case, you will have your own local database copy; in the latter case, you and your teammates will work with the same shared copy.
Make, commit, and revert changes
After you link your database, you’ll be all set to make changes to it and commit them to your repository. Whenever you make changes, you’ll be able to review them in Source Control Manager. Then, once you make sure everything is correct, you can select the changes you want to commit, write a comment, and click Commit. Simple as that. In case you have any unwanted changes, you can just as well revert them using Undo.
Get remote changes
If you are using the dedicated development model, every developer has their own local database copy and commits changes to a central repository. In this situation, you may want to keep your copy up-to-date by pulling those changes from that repository. To do that, you need to start with the Refresh operation in Source Control Manager. If there are any remote changes, they will be shown in the corresponding section. To update your local copy with those changes, select them and click Get Latest.
A conflict arises when there is a discrepancy between different versions of an object. The most common reason for conflicts is that multiple people have modified the same file simultaneously. You can resolve conflicts directly in Source Control Manager. Run a Refresh operation. If there are any conflicts, you’ll see them in the Conflicts section. Select a conflict, inspect it, and decide how you want to resolve it. You have two options here.
- Get Local: Your version of the object/data will be committed to the repository.
- Get Remote: Your changes will be discarded, and your local database copy will be updated with the latest version of the object/data from the repository.
Link static data
What if you need to link static table data to your repository? That’s easy! Just right-click the database that contains it and select Source Control > Link/Unlink static data from the shortcut menu.
View the history of changes
Finally, you can view the history of changes for an entire database or for separate database objects. To do that, open the Changes History document, which provides information on each commit, including revision ID, date, author, and comments. With its help, you can check the list of objects modified in each commit, compare object versions, and scrutinize DDL differences for each object.
Watch our video and see Source Control in action!
The best way to conclude our tour is to actually show you how it all works, and thus we’ve prepared a concise yet informative video. It will help you learn how to perform basic operations with Source Control in less than 3 minutes.
That’s it for Source Control! Now let’s proceed to other newly introduced features and enhancements. Make sure you don’t miss a thing—we bet there are lots of pleasant surprises up ahead.
Code Completion & Syntax Check
- We have added highlighting and quick navigation between syntax pairs. You can also instantly go to matching brackets.
- Navigation between COLUMNS and VALUES in INSERT statements has been made easier, also augmented with highlighting.
- Additionally, we have improved the behavior of highlighting within INSERT statements in case of mismatches in VALUES.
- We have implemented support for the JSON_TABLE() table function in MariaDB.
- We have supported JSON datatype parameters in stored procedures and functions.
- You can now conveniently comment out selections inside a line of code.
- You can apply expressions when creating indexes.
- You can now use ASC | DESC for indexes with functional key parts.
- We have added a new snippet ssf in addition to sel. Both expand to the same SELECT * FROM. Thus you can easily use whatever shortcut you got used to.
- You can assign columns an INVISIBLE attribute in CREATE TABLE and ALTER TABLE statements.
- You can also specify FAILED_LOGIN_ATTEMPTS and PASSWORD_LOCK_TIME in CREATE USER statements.
- You can apply ENCRYPTION in CREATE TABLESPACE and ALTER TABLESPACE statements.
- We have added support for UNDO TABLESPACE statements.
- You can now specify AUTOEXTEND_SIZE in CREATE/ALTER TABLE and CREATE/ALTER TABLESPACE statements.
- You can add IDENTIFIED BY RANDOM PASSWORD to CREATE USER and ALTER USER statements.
- We have added full support for complex VALUE statements.
- We have improved the behavior of the FOR … END FOR statement.
- The CAST() function now supports the AT TIME ZONE operator.
- Non-aggregated columns are now suggested for GROUP BY statements.
- The Reset Suggestions Cache and Refresh Local Cache buttons on the toolbar have been replaced with a single button Reset Suggestions.
- You can easily duplicate database objects and migrate them to a different server. Moreover, we have added an option to drop the destination object.
- For your convenience, all tables, views, and containers on database diagrams are now semitransparent, and all the interrelations are perfectly visible.
- We have added a few skins for diagrams and improved the zooming behavior.
- We have implemented the Clear Waypoints option that eliminates all the waypoints created for a specific relation. The relation gets restructured and shown in its default condition.
- You can set Source Control as the Source Type and Target Type in the comparison wizard, specify the required repository, and compare different revisions.
- You can now enable/disable the display of DDL differences for pairs of compared objects with the Equal status.
- We have introduced a new group of comparison options called Sequences, which includes Ignore CACHE, Ignore CYCLE, Ignore INCREMENT BY, Ignore MAXVALUE, Ignore MINVALUE, and Ignore START.
- We have improved the behavior of the Ignore Permissions option.
- We have added a new exit code 114 for invalid object filters.
- The object description process now ignores folders with static data, which may contain large files and thus may affect the performance. Now the objects are described faster, and static data is analyzed at the data comparison stage.
- You can save the .scomp comparison document directly from the comparison wizard.
- You can now hide empty columns from the grid that displays data differences.
- In case there are NULL → NOT NULL mapped pairs, the synchronization wizard introduces a new page called Issues where you can specify the conflict resolution behavior for potential sync issues.
- We have added the Ignore internal spaces option that allows comparing string data types while ignoring whitespaces located in the middle of a line.
- You can now save the .dcomp comparison document directly from the comparison wizard.
Find Invalid Objects
- You can now search for invalid objects across all databases on the entire server. To make it possible, we have added the Check All and Uncheck All options to the Databases tree.
- The search for invalid objects can now be launched from the command line.
- We have added a checkbox that allows you to quickly lock and unlock user accounts.
- We have supported the latest version of the Transport Layer Security cryptographic protocol – v1.3.
- We have added support for temporal tables in MariaDB. This table type allows maintaining historical versions of data and makes it possible to track changes in data over time.
- We have also extended support for the INET6 data type, intended for the storage of IPv6 addresses.
- We have added support for spatial reference identifiers (SRID).
- We have introduced an option that enables the quoting of identifiers during script generation.
- We have added an option that clears existing folders from the command line. With its help, you can make sure your scripts folders are not littered with irrelevant files.
- We have upgraded the Retrieve Data feature and renamed it to Select Top Rows. It is invoked from Database Explorer for a selected database object. The number of selected rows can be specified in Options, as shown in the screenshot below.
- Now Query Profiler displays the entire information tooltip when you place the cursor over an SQL statement.
- We have tweaked the Do not highlight less than option for Query Profiler.
- We have reworked the option filtering algorithm that is applied when editing formatting profiles.
- Now you have an option to add IF NOT EXISTS to CREATE statements in your deployment scripts.
- We have tweaked the display of filtered data in the Card View mode.
- The Search Options algorithm in Options has been substantially improved. Now you can effectively find any specific option by name.
- To help define the order of opening new document tabs, we have added the Insert new tabs to the right of existing tabs option on the Tabs and Windows tab in Options.
- The Tabs and Windows tab has also been expanded with the Tabs Layout, Show tabs in multiple rows, and Close tabs with middle-click options.
- Also in Options, we have added the Include size of the Integer datatype in statements option, which enables/disables the display of the size of integer values in generated DDL statements.
- We have introduced an option to include named regions in all CRUD templates.
- We have improved the behavior of the /restore /treatwarningaserror command.
- The Data Pump section of the Studio’s Start Page now includes the Copy Databases feature.
- To keep it consistent across our tools, Execution History has been renamed to Query History.
- For additional convenience, the Studio now keeps the user-defined layout of columns in Query History.
- The application launch time is now displayed in the Output pane alongside the application launch timestamp.
- The Standard edition can be activated and deactivated from the command line using the /activate and /deactivate commands.
- SSL/SSH connections are now available in the free Express edition of the Studio.
Upgrade to dbForge Studio for MySQL 10.0 today!
The update has already been rolled out and awaits you on the next launch of the Studio—or, if you will, you can go to the Help menu > Check for Updates at any moment. And if you aren’t acquainted with the Studio and its capabilities yet, we gladly invite you to download it for a free 30-day trial and give it a go in your daily work. We’d also be glad to hear your feedback, so feel free to contact us whenever you wish.
Get the updated dbForge Studio for MySQL in a multidatabase suite!
Finally, we’d love to remind you that if your work with databases goes well beyond MySQL and MariaDB, you can always try our big multidatabase suite dbForge Edge, which comprises four Studios that cover multiple databases and cloud services. The updated dbForge Studio for MySQL is also already included.