"""Permit RDBM toggling."""
__docformat__ = "restructuredtext"
# Created: Tue Jan 9 14:48:12 PST 2001
# Author: Shannon -jj Behrens
# Email: jjinux@users.sourceforge.net
#
# Copyright (c) Shannon -jj Behrens. All rights reserved.
from DatabaseAssistant import DatabaseAssistant
import aquarium.conf.AquariumProperties as properties
class QuickSwitchDatabaseAssistant(DatabaseAssistant):
"""Permit RDBM toggling.
This database assistant class permits a developer to develop for a range
of RDBM's and then choose which one to use based on a properties file
configuration.
If you have not read the rather lengthy and helpful comment in the
aquarium.database.DatabaseAssistant_ class, please do so before reading
this. Afterall, this is a relatively simple subclass of DatabaseAssistant.
The idea is as follows: go to your copy of ``site-packages/database``
and make a new directory for each RDBM you wish to support
(for instance, ``mkdir mysql; mkdir sqlserver``). Then, inside
each directory, add a new ``__init__.py`` file (you can copy the one from
``$PYTHON_INSTALL_PATH/lib/python2.*/site-packages/aquarium/database``
provided you change the packageType appropriate, e.g.
"database/mysql" or "database/sqlserver"). Now you have a place
to put different "table classes" for your different RDBM's. Now, go
edit your ``AquariumProperties`` file (there will be appropriate
instructions there). By editing your ``AquariumProperties`` file, you
can quickly switch between your different table classes (and thusly,
different RDBM's).
.. _aquarium.database.DatabaseAssistant:
aquarium.database.DatabaseAssistant.DatabaseAssistant-class.html
"""
def getModuleType(self):
"""Tell ``AutoLoader`` what type of modules to autoload.
``DatabaseAssistant`` mixes in ``aquarium.util.AutoLoader``. Here, we
must override getModuleType_ to tell ``AutoLoader`` which directory to
import the "table classes" from.
.. _getModuleType:
aquarium.util.AutoLoader.AutoLoader-class.html#getModuleType
"""
return "database." + properties.DATABASE_RDBM
|