blob: 160a8517520a43e469bbcf2b52ce0d724f1e29bf [file] [log] [blame]
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