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.
This commit is contained in:
parent
f5d837fe4a
commit
415077a743
@ -18,6 +18,7 @@ import pymongo
|
|||||||
import mongokit
|
import mongokit
|
||||||
from paste.deploy.converters import asint
|
from paste.deploy.converters import asint
|
||||||
from mediagoblin.db.mongo import models
|
from mediagoblin.db.mongo import models
|
||||||
|
from mediagoblin.db.util import MigrationManager
|
||||||
|
|
||||||
|
|
||||||
def connect_database_from_config(app_config, use_pymongo=False):
|
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)
|
models.register_models(connection)
|
||||||
|
|
||||||
return (connection, db)
|
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?!")
|
||||||
|
@ -14,4 +14,5 @@
|
|||||||
# You should have received a copy of the GNU Affero General Public License
|
# 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/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
from mediagoblin.db.mongo.open import setup_connection_and_db_from_config
|
from mediagoblin.db.mongo.open import \
|
||||||
|
setup_connection_and_db_from_config, check_db_migrations_current
|
||||||
|
@ -27,3 +27,7 @@ def setup_connection_and_db_from_config(app_config):
|
|||||||
Session.configure(bind=engine)
|
Session.configure(bind=engine)
|
||||||
|
|
||||||
return "dummy conn", DatabaseMaster(engine)
|
return "dummy conn", DatabaseMaster(engine)
|
||||||
|
|
||||||
|
|
||||||
|
def check_db_migrations_current(db):
|
||||||
|
pass
|
||||||
|
@ -23,8 +23,8 @@ from mediagoblin.init.config import (
|
|||||||
read_mediagoblin_config, generate_validation_report)
|
read_mediagoblin_config, generate_validation_report)
|
||||||
from mediagoblin import mg_globals
|
from mediagoblin import mg_globals
|
||||||
from mediagoblin.mg_globals import setup_globals
|
from mediagoblin.mg_globals import setup_globals
|
||||||
from mediagoblin.db.open import setup_connection_and_db_from_config
|
from mediagoblin.db.open import setup_connection_and_db_from_config, \
|
||||||
from mediagoblin.db.util import MigrationManager
|
check_db_migrations_current
|
||||||
from mediagoblin.workbench import WorkbenchManager
|
from mediagoblin.workbench import WorkbenchManager
|
||||||
from mediagoblin.storage import storage_system_from_config
|
from mediagoblin.storage import storage_system_from_config
|
||||||
|
|
||||||
@ -56,28 +56,10 @@ def setup_global_and_app_config(config_path):
|
|||||||
def setup_database():
|
def setup_database():
|
||||||
app_config = mg_globals.app_config
|
app_config = mg_globals.app_config
|
||||||
|
|
||||||
# This MUST be imported so as to set up the appropriate migrations!
|
|
||||||
from mediagoblin.db.mongo import migrations
|
|
||||||
|
|
||||||
# Set up the database
|
# Set up the database
|
||||||
connection, db = setup_connection_and_db_from_config(app_config)
|
connection, db = setup_connection_and_db_from_config(app_config)
|
||||||
|
|
||||||
# Init the migration number if necessary
|
check_db_migrations_current(db)
|
||||||
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?!")
|
|
||||||
|
|
||||||
setup_globals(
|
setup_globals(
|
||||||
db_connection=connection,
|
db_connection=connection,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user