Examples of NuoDB Migrator Schema Command

Usage Examples

Generated schema can be exported to a NuoDB database through--target.*options, to a file via the--output.pathparameter. If neither a target database nor a file were provided, scripts are written to the standard output stream. The following command generates NuoDB schema from a MySQL catalog and prints it to the standard output.

$nuodb-migrator schema \ --source.driver=com.mysql.jdbc.Driver \ --source.url=jdbc:mysql://localhost/test \ --source.username=root \ --source.password=12345

The tool generatesDROPandCREATEstatements for target objects. Using the--script.typeoption, you can alter the default behavior. The following causes onlyDROPstatements to be outputted:

nuodb-migrator schema ... --script.type=drop

You can exclude certain types of objects from the output by listing them in--meta.data.*option. The command below below instructs the migrator to not include foreign keys and auto incremented columns into generated DDL scripts:

nuodb-migrator schema ... \ --meta.data.foreign.key=false \ --meta.data.auto.increment=false

Note: In any event, foreign keys are ignored, with no action as the default should they be included.

NuoDB Migrator uses identifier quoting and identifier normalizer policies to produce names for tables and columns. Those policies may be overridden on the command line using--identifier.quotingand--identifier.normalizerparameters:

nuodb-migrator schema ... \ --identifier.quoting=minimal \ --identifier.normalizer=lower.case

The above line will quote only identifiers which are stop words and reserved words. All generated names will appear in lower case format.

--use.nuodb.typesExample

# For the following MySQL table: CREATE TABLE `t1` ( `f1` CHAR(10) DEFAULT NULL, `f2` VARCHAR(10) DEFAULT NULL, `f3` TEXT); # Without the switch, nuodb-migrator schema {arguments} produces: CREATE TABLE "t1" ("f1" CHAR(10), "f2" VARCHAR(10), "f3" CLOB); # With the switch on the CL nuodb-migrator schema {arguments} --use.nuodb.types generates: CREATE TABLE "t1" ("f1" STRING, "f2" STRING, "f3" STRING);

--use.explicit.defaultsExample

# For the following MySQL table: CREATE TABLE `t1` (`f1` SMALLINT(6) NOT NULL, `f2` DOUBLE NOT NULL, `f3` DECIMAL(10,0) NOT NULL, `f4` CHAR(10) NOT NULL, `f5` TEXT NOT NULL, `f6` ENUM('value1','value2','value3') NOT NULL); # Without explicit defaults nuodb-migrator schema {arguments} will result in: CREATE TABLE "t1" ("f1" SMALLINT NOT NULL, "f2" DOUBLE NOT NULL, "f3" DECIMAL(10,0) NOT NULL, "f4" CHAR(10) NOT NULL, "f5" CLOB NOT NULL, "f6" CHAR(7) NOT NULL); # With explicit defaults transformed to their implicit equivalents / nuodb-migrator schema {arguments} --use.nuodb.types generates: CREATE TABLE "t1" ("f1" SMALLINT NOT NULL DEFAULT '0', "f2" DOUBLE NOT NULL DEFAULT '0', "f3" DECIMAL(10,0) NOT NULL DEFAULT '0', "f4" CHAR(10) NOT NULL DEFAULT '', "f5" CLOB NOT NULL DEFAULT '', "f6" CHAR(7) NOT NULL DEFAULT 'value1');