diff options
author | Elrond <elrond+mediagoblin.org@samba-tng.org> | 2012-01-01 17:24:02 +0100 |
---|---|---|
committer | Elrond <elrond+mediagoblin.org@samba-tng.org> | 2012-01-01 18:36:42 +0100 |
commit | 415077a743400f9d9fa476b37c5b3aff4683f942 (patch) | |
tree | 625cbb6ab32c8766652da3f6588e8d5d474c34cb /mediagoblin/db/mongo/open.py | |
parent | f5d837fe4a0ad5f08b48e0cd69fddb37e81d1514 (diff) | |
download | mediagoblin-415077a743400f9d9fa476b37c5b3aff4683f942.tar.lz mediagoblin-415077a743400f9d9fa476b37c5b3aff4683f942.tar.xz mediagoblin-415077a743400f9d9fa476b37c5b3aff4683f942.zip |
Factor out check_db_migrations_current
When initializing the database connection the current mongo
based setup checked for new migrations and warned about
them. This was mongo specific so factor'd it out into a
more generic check_db_migrations_current function in the
mongo backend.
Also created a dummy one in the sql backend.
Diffstat (limited to 'mediagoblin/db/mongo/open.py')
-rw-r--r-- | mediagoblin/db/mongo/open.py | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/mediagoblin/db/mongo/open.py b/mediagoblin/db/mongo/open.py index 63889292..8016ced9 100644 --- a/mediagoblin/db/mongo/open.py +++ b/mediagoblin/db/mongo/open.py @@ -18,6 +18,7 @@ import pymongo import mongokit from paste.deploy.converters import asint from mediagoblin.db.mongo import models +from mediagoblin.db.util import MigrationManager def connect_database_from_config(app_config, use_pymongo=False): @@ -53,3 +54,25 @@ def setup_connection_and_db_from_config(app_config, use_pymongo=False): models.register_models(connection) return (connection, db) + + +def check_db_migrations_current(db): + # This MUST be imported so as to set up the appropriate migrations! + from mediagoblin.db.mongo import migrations + + # Init the migration number if necessary + migration_manager = MigrationManager(db) + migration_manager.install_migration_version_if_missing() + + # Tiny hack to warn user if our migration is out of date + if not migration_manager.database_at_latest_migration(): + db_migration_num = migration_manager.database_current_migration() + latest_migration_num = migration_manager.latest_migration() + if db_migration_num < latest_migration_num: + print ( + "*WARNING:* Your migrations are out of date, " + "maybe run ./bin/gmg migrate?") + elif db_migration_num > latest_migration_num: + print ( + "*WARNING:* Your migrations are out of date... " + "in fact they appear to be from the future?!") |