aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorElrond <elrond+mediagoblin.org@samba-tng.org>2011-06-30 23:26:02 +0200
committerElrond <elrond+mediagoblin.org@samba-tng.org>2011-06-30 23:27:52 +0200
commit3f9d93407be1f719532ba2d1740ae38a6578449a (patch)
tree7ed2e545dddff3fe597add81975f958d721e9948
parenta86e66b5e06c52d60c98e91da557c489e01b5ca7 (diff)
downloadmediagoblin-3f9d93407be1f719532ba2d1740ae38a6578449a.tar.lz
mediagoblin-3f9d93407be1f719532ba2d1740ae38a6578449a.tar.xz
mediagoblin-3f9d93407be1f719532ba2d1740ae38a6578449a.zip
Document the db submodule a bit
Document the ideas behind the db submodule. And document what that actually means.
-rw-r--r--mediagoblin/db/__init__.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/mediagoblin/db/__init__.py b/mediagoblin/db/__init__.py
index c129cbf8..f0116083 100644
--- a/mediagoblin/db/__init__.py
+++ b/mediagoblin/db/__init__.py
@@ -13,3 +13,37 @@
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+"""
+Database Abstraction/Wrapper Layer
+==================================
+
+This submodule is for most of the db specific stuff.
+
+There are two main ideas here:
+
+1. Open up a small possibility to replace mongo by another
+ db. This means, that all direct mongo accesses should
+ happen in the db submodule. While all the rest uses an
+ API defined by this submodule.
+
+ Currently this API happens to be basicly mongo.
+ Which means, that the abstraction/wrapper layer is
+ extremely thin.
+
+2. Give the rest of the app a simple and easy way to get most of
+ their db needs. Which often means some simple import
+ from db.util.
+
+What does that mean?
+
+* Never import mongo directly outside of this submodule.
+
+* Inside this submodule you can do whatever is needed. The
+ API border is exactly at the submodule layer. Nowhere
+ else.
+
+* helper functions can be moved in here. They become part
+ of the db.* API
+
+"""