eZ component: DatabaseSchema, Design, 1.3 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :Author: Frederik Holljen :Revision: $Rev:$ :Date: $Date:$ :Status: Draft .. contents:: Introduction ============ Version 1.3 of DatabaseSchema will include scripts that support: - outputing a database schema - writing a database schema to a database - outputing a database diff - writinga database diff to a database - schema validating The corresponding issue in the issue tracker to this design document is #010534. Design description ================== The implementation will consist of five scripts and will use ConsoleTools for handling of parameters. The scripts in this proposal are writtin in UNIX style accepting intput from STDIN and writing to STDOUT by default. Saving a database schema ------------------------ The script will have the following parameters and options: dbschemasave SRC SRC is the full DSN of the database to read from. -f, --format=FORMAT One of xml[default], php. -n, --native-format=FORMAT Overrides -f, one of db handler names. -t, --target-file=FILE Path to filename to write output to. By default it will write the output to STDOUT in the XML format. If the user has added additional formats they too can be used with -f. Loading a database schema ------------------------- The script will have the following parameters and options: dbschemaload TARGET TARGET is the full DSN of the database to write to. -f, --format=FORMAT One of xml[default] or php. -t, --target-file=FILE Path to filename to read from. By default it will load the input from STDIN. If -t is used the tool will try to guess the format based on the file extension. The format can always be overriden with -f. If the user has added additional formats they too can be used with -f. Saving a diff ------------- The script will have the following parameters and options: dbchemadiff FROM TO -f, --format=FORMAT One of xml[default] or php. -t, --target-file=FILE Path to filename to write output to -n, --native-format=FORMAT Overrides -f, one of db handler names. FROM and TO can both be DSN's specifying databases to read from or they can be paths to files containing db schema definitions. By default it will write the output to STDOUT in the XML format. If the user has added additional formats they too can be used with -f. Applying a diff -------------- The script will have the following parameters and options: dbschemadiffapply TARGET -f, --format=FORMAT One of xml[default] or php. -t, --target-file=FILE Path to filename to write output to TARGET is the DSN to the database that should have the diff applied. By default the script will load the diff from STDIN. This can be overriden with -t. Since this script can be potentially harmful to your database should we should issue a warning by default and ask if the user is sure he/she wants to continue. This could be surpressed with an optional parameter. Validating a schema ------------------- The script will have the following parameters and options: dbschemavalidate -f, --format=FORMAT One of xml[default] or php. -t, --target-file=FILE Path or DSN to validate. Validates the schema from STDIN or given by -f. .. Local Variables: mode: rst fill-column: 79 End: vim: et syn=rst tw=79