give option in connect_database_from_config to connect to a pymongo.Connection

This commit is contained in:
Christopher Allan Webber 2011-07-10 22:44:20 -05:00
parent dab0d24d98
commit f92bea33c7

View File

@ -14,24 +14,41 @@
# 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/>.
import pymongo
import mongokit
from paste.deploy.converters import asint
from mediagoblin.db import models
def connect_database_from_config(app_config):
"""Connect to the main database, take config from app_config"""
def connect_database_from_config(app_config, use_pymongo=False):
"""
Connect to the main database, take config from app_config
Optionally use pymongo instead of mongokit for the connection.
"""
port = app_config.get('db_port')
if port:
port = asint(port)
connection = mongokit.Connection(
app_config.get('db_host'), port)
if use_pymongo:
connection = pymongo.Connection(
app_config.get('db_host'), port)
else:
connection = mongokit.Connection(
app_config.get('db_host'), port)
return connection
def setup_connection_and_db_from_config(app_config):
connection = connect_database_from_config(app_config)
def setup_connection_and_db_from_config(app_config, use_pymongo=False):
"""
Setup connection and database from config.
Optionally use pymongo instead of mongokit.
"""
connection = connect_database_from_config(app_config, use_pymongo)
database_path = app_config.get('db_name', 'mediagoblin')
db = connection[database_path]
models.register_models(connection)
# Could configure indexes here on db
if not use_pymongo:
models.register_models(connection)
return (connection, db)