Improved test runtime from 352 seconds to 59 seconds by implementing an in-memory...
[mediagoblin.git] / mediagoblin / init / __init__.py
index 6eed8ff8292268babe19464b586c2cb3f69916ec..e0711416378cbf4c1e5cf7ceb874297a544bffb3 100644 (file)
@@ -58,16 +58,20 @@ def setup_global_and_app_config(config_path):
     return global_config, app_config
 
 
-def setup_database():
+def setup_database(run_migrations=False):
     app_config = mg_globals.app_config
+    global_config = mg_globals.global_config
 
     # Load all models for media types (plugins, ...)
     load_models(app_config)
-
     # Set up the database
-    db = setup_connection_and_db_from_config(app_config)
-
-    check_db_migrations_current(db)
+    db = setup_connection_and_db_from_config(app_config, run_migrations)
+    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)
+    else:
+        check_db_migrations_current(db)
 
     setup_globals(database=db)
 
@@ -119,9 +123,9 @@ def get_staticdirector(app_config):
 
     # Let plugins load additional paths
     for plugin_static in hook_runall("static_setup"):
-        direct_domains[plugin_static['name']] = "%s/%s" % (
+        direct_domains[plugin_static.name] = "%s/%s" % (
             app_config['plugin_web_path'].rstrip('/'),
-            plugin_static['name'])
+            plugin_static.name)
 
     return staticdirect.StaticDirect(
         direct_domains)