Merge branch 'master' of git.sv.gnu.org:/srv/git/mediagoblin
[mediagoblin.git] / mediagoblin / init / __init__.py
index b6421e06c8ca6e02c740b460ff05b070ec1c1919..05a267925cada2fa137eacb2c350a9511cf8fa10 100644 (file)
@@ -60,18 +60,26 @@ def setup_global_and_app_config(config_path):
     return global_config, app_config
 
 
-def setup_database(run_migrations=False):
-    app_config = mg_globals.app_config
-    global_config = mg_globals.global_config
+def setup_database(app):
+    app_config = app.app_config
+    global_config = app.global_config
+    run_migrations = app_config['run_migrations']
 
     # Load all models for media types (plugins, ...)
     load_models(app_config)
     # Set up the database
-    db = setup_connection_and_db_from_config(app_config, run_migrations)
+    db = setup_connection_and_db_from_config(
+        app_config, run_migrations, app=app)
+    # run_migrations is used for tests
     if run_migrations:
-        #Run the migrations to initialize/update the database.
-        from mediagoblin.gmg_commands.dbupdate import run_all_migrations
-        run_all_migrations(db, app_config, global_config)
+        # Run the migrations to initialize/update the database.
+        # We only run the alembic migrations in the case of unit
+        # tests, in which case we don't need to run the legacy
+        # migrations.
+        from mediagoblin.gmg_commands.dbupdate import (
+            run_alembic_migrations, run_foundations)
+        run_alembic_migrations(db, app_config, global_config)
+        run_foundations(db, global_config)
     else:
         check_db_migrations_current(db)