Merge branch 'master' into f411_new_migrations

Conflicts:
	mediagoblin/db/open.py
This commit is contained in:
Christopher Allan Webber
2011-07-13 23:14:42 -05:00
12 changed files with 88 additions and 62 deletions

View File

@@ -45,11 +45,13 @@ REQUIRED READING:
To remove deprecated indexes
----------------------------
Removing deprecated indexes is easier, just do:
Removing deprecated indexes is the same, just move the index into the
deprecated indexes mapping.
INACTIVE_INDEXES = {
'collection_name': [
'deprecated_index_identifier1', 'deprecated_index_identifier2']}
DEPRECATED_INDEXES = {
'collection_name': {
'deprecated_index_identifier1': {
'index': [index_foo_goes_here]}}
... etc.

View File

@@ -38,6 +38,7 @@ def connect_database_from_config(app_config, use_pymongo=False):
app_config.get('db_host'), port)
return connection
def setup_connection_and_db_from_config(app_config, use_pymongo=False):
"""
Setup connection and database from config.
@@ -45,7 +46,7 @@ def setup_connection_and_db_from_config(app_config, use_pymongo=False):
Optionally use pymongo instead of mongokit.
"""
connection = connect_database_from_config(app_config, use_pymongo)
database_path = app_config.get('db_name', 'mediagoblin')
database_path = app_config['db_name']
db = connection[database_path]
if not use_pymongo:

View File

@@ -86,18 +86,25 @@ def remove_deprecated_indexes(database, deprecated_indexes=DEPRECATED_INDEXES):
Args:
- database: pymongo or mongokit database instance.
- deprecated_indexes: the indexes to deprecate in the pattern of:
{'collection': ['index_identifier1', 'index_identifier2']}
{'collection_name': {
'identifier': {
'index': [index_foo_goes_here],
'unique': True}}
(... although we really only need the 'identifier' here, as the
rest of the information isn't used in this case. But it's kept
around so we can remember what it was)
Returns:
A list of indexes removed in form ('collection', 'index_name')
"""
indexes_removed = []
for collection_name, index_names in deprecated_indexes.iteritems():
for collection_name, indexes in deprecated_indexes.iteritems():
collection = database[collection_name]
collection_indexes = collection.index_information().keys()
for index_name in index_names:
for index_name, index_data in indexes.iteritems():
if index_name in collection_indexes:
collection.drop_index(index_name)