8.4.1.1 Forward Engineering Using an SQL Script

8.4.1.1.1 Creating a Schema
8.4.1.1.2 Altering a Schema

To create a script of your database model, choose the Export item from the File menu. You may export a script to alter an existing database or create a new database. The script to create a database is similar to the one created using the mysqldump db_name command.

If you choose to create a database, there are several export options available.

8.4.1.1.1 Creating a Schema

Select the File, Export, Forward Engineer SQL CREATE Script menu item to start the Forward Engineer SQL Script wizard. The following figure shows the first page of the wizard.

Figure 8.29 SQL Export Options

SQL Export Options

The SQL Export Options displays the following facilities:

  • Output SQL Script File

    To specify the output file name, enter it into the Output SQL Script File field, or use the Browse button to select a file. If this field is left blank, you will be able to view the generated script, but it will not be saved to a file.

  • Generate DROP Statements Before Each CREATE Statement

    Select this option to generate a statement to drop each object before the statement that creates it. This ensures that any existing instance of each object is removed when the output is executed.

  • Generate DROP SCHEMA

  • Skip creation of FOREIGN KEYS

  • Skip creation of FK Indexes as well

  • Omit Schema Qualifier in Object Names

    Select this option to generate unqualified object names in SQL statements.

  • Generate USE statements

  • Generate Separate CREATE INDEX Statements

    Select this option to create separate statements for index creation instead of including index definitions in CREATE TABLE statements.

  • Add SHOW WARNINGS after every DDL statement

    Select this option to add SHOW WARNINGS statements to the output. This causes display of any warnings generated when the output is executed, which can be useful for debugging.

  • Do Not Create Users. Only Export Privileges

    Select this option to update the privileges of existing users, as opposed to creating new users. Exporting privileges for nonexistent users will result in errors when you execute the CREATE script. Exporting users that already exist will also result in an error.

  • Don't create view placeholder tables

  • Generate INSERT Statements for Tables

    Select this option if you have added any rows to a table. For more information about inserting rows, see Section 7.1.1, “SQL Query Window”.

  • Disable FK checks for inserts

  • Create triggers after inserts

Clicking Next takes you to the SQL Object Export Filter page where you select the objects you wish to export.

Figure 8.30 SQL Object Export Filter

SQL Object Export Filter

Precise control over the objects to export can be fine tuned by clicking the Show Filter button. After the objects to export have been selected, it is possible to reduce the expanded panel by clicking the same button, now labeled Hide Filter.

After selecting the objects to export, click the Next button to review the script that has been generated.

Figure 8.31 Review Generated Script

Review Generated Script

You may return to the previous page using the Back button.

The Finish button saves the script file and exits. You can then use the saved script to create a database.

8.4.1.1.2 Altering a Schema

The menu item for creating an ALTER Script File is Database, Synchronize With Any Source. Typically, this option is used when the SQL script of a database has been imported into MySQL Workbench and changed, and then you want to create a script that can be run against the database to alter it to reflect the adjusted model. For instructions on importing a DDL script, see Section 8.4.2.1, “Reverse Engineering Using a Create Script”.

Select the Database, Synchronize With Any Source menu item to start the wizard. You will be presented with the first page showing the introduction, and then the available options:

Figure 8.32 Synchronize With Any Source: Options

Synchronize With Any Source: Options

For additional information, see Section 8.5.1, “Database Synchronization”.