dbmstools module exists mainly for developers who need to support applications on more than one database management system DBMS.
Version: 0.4.4 / 0.4.5 RC1dbmstools module exists mainly for developers who need to support applications on more than one database management system (DBMS). dbmstools is intended to allow all the database information (schema and base data) to be kept in one single place, and to have DBMS-specific scripts (to create and populate the database schema, and upgrade from one version to the next) generated from that If you're anything like me you hate duplication in software code, and I wrote this module to remove that duplication.
Operating System: Linux
As well as generation of DBMS-specific DDL and DML, dbmstools can generate schema documentation for any DBMS (including diagrams), and can export data from a database in several formats. It also has wrappers for several of the tools, so that they can be run from within Apache Ant (a Java build system).
The DBMS's supported (and the completeness/maturity of that support) are:
- Postgres (7 and 8) - very good
- Oracle - good
- Microsoft SQLServer - good
- MySQL - good
- Hypersonic - limited.
Most of the individual tools in dbmstools require only Python (version 2.1 or later, but 2.3+ recommended). However:
· db2xml and db2sql require Jython (an implementation of Python that runs inside a Java VM)
· Several of the tools have wrappers to allow them to run from Ant build scripts (for Java projects). These also require Jython
· If schema diagrams are to be generated, xml2doc requires the 'dot' program from the Graphviz package
And, of course, you're going to need one or more DBMS's, but if you didn't already have them you wouldn't be here, right?
What's New in 0.4.4 Stable Release:
· The major change is support for runtime variables.
· This allows generation of schema variants based on any conditions you choose, and insertion of variables in documentation for any element.
· Other changes include explicit support for column defaults and auto-increment columns, 'tiny' and 'boolean' data types, as well as sequences on the Hypersonic DBMS.
· MySQL support has been improved, particularly in generating upgrade scripts with deltaddl.
· There were also small bugfixes and improvements.
What's New in 0.4.5 RC1 Development Release:
- Added proper support for encodings other than ASCII, particularly UTF-8 and ISO-8859-1
(also known as Latin-1 and Western European), in schema description fields and
Thanks to C�sar Chiarinelli for the bug report. See notes for each tool, and FAQ.
- All SQL files are now encoded in ISO-8859-1 (Latin 1) by default, with command line
option to use UTF-8 on xml2ddl, db2* tools and filterdml, as well as ant wrappers
for xml2ddl and filterdml
- HTML encoding is now set to UTF-8
- db2xml now outputs XML as UTF-8
- Dbmstools now requires Python >= 2.2
- Started adding support for Sqlite. Not all column types are supported, and there will
likely be no support for sqlite with deltaddl, but simple schemas can now be generated.
- BUG: Script now executes using 'python', not 'python2.4'
- Wiki character styles now work at the start of a description, and after tabs, linefeeds and
explicit breaks (``[[BR]]``)
- BUG: Non-ascii characters (e.g. UTF-8 or Latin 1) in XML file are now supported
- BUG: If 'dot' is not in the PATH, and running under Jython, no longer throws an exception
and stops, but rather just skips diagram generation
- BUG: Exception when running with verbose flag on Python < 2.4
* Ant task
- The Jython ant task has been changed to the package ``net.sourceforge.dbmstools``.
**Incompatible change** if using dbmstools from ant
- Combined the Ant task into the ``dbmstools-jython-xxx.jar`` file, so now only one jar is
required for the task. This jar also includes all the dbmstools, so there is no longer
any need to have dbmstools available on the file system
- The above Jython jar now includes all Python libraries,
- The included Jython jar has been updated to version 2.2.1, and now has all the
Python libraries included within the jar (so no need for a Lib directory). The ``pythonBaseDir``
attribute is therefore no longer required on the ``jython`` task element.
**Incompatible change** if using dbmstools from ant.