[llvm-commits] [LNT] r154553 - in /lnt/trunk/lnt/server/db: migrate.py migrations/upgrade_0_to_1.py

Daniel Dunbar daniel at zuster.org
Wed Apr 11 16:14:44 PDT 2012


Author: ddunbar
Date: Wed Apr 11 18:14:43 2012
New Revision: 154553

URL: http://llvm.org/viewvc/llvm-project?rev=154553&view=rev
Log:
lnt.server.db.migrate: Pass the engine to the upgrade scripts instead of a session.

Modified:
    lnt/trunk/lnt/server/db/migrate.py
    lnt/trunk/lnt/server/db/migrations/upgrade_0_to_1.py

Modified: lnt/trunk/lnt/server/db/migrate.py
URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/lnt/server/db/migrate.py?rev=154553&r1=154552&r2=154553&view=diff
==============================================================================
--- lnt/trunk/lnt/server/db/migrate.py (original)
+++ lnt/trunk/lnt/server/db/migrate.py Wed Apr 11 18:14:43 2012
@@ -11,6 +11,7 @@
 import os
 import re
 
+import sqlalchemy
 import sqlalchemy.ext.declarative
 import sqlalchemy.orm
 from sqlalchemy import Column, String, Integer
@@ -106,7 +107,7 @@
 
 logger = logging.getLogger(__name__)
 
-def update_schema(session, versions, available_migrations, schema_name):
+def update_schema(engine, session, versions, available_migrations, schema_name):
     schema_migrations = available_migrations[schema_name]
 
     # Get the current schema version.
@@ -148,7 +149,7 @@
         # FIXME: Execute this inside a transaction?
         logger.info("applying upgrade for version %d to %d" % (
                 db_version.version, db_version.version+1))
-        upgrade_method(session)
+        upgrade_method(engine)
 
         # Update the schema version.
         db_version.version += 1
@@ -167,7 +168,7 @@
     # Load the available migrations.
     available_migrations = _load_migrations()
 
-    # Create a session for the update.
+    # Create a session for our queries.
     session = sqlalchemy.orm.sessionmaker(engine)()
 
     # Load all the information from the versions tables. We just do the query
@@ -183,15 +184,26 @@
 
         # Create the SchemaVersion table.
         Base.metadata.create_all(engine)
-        session.commit()
 
         version_list = []
     versions = dict((v.name, v)
                     for v in version_list)
 
     # Update the core schema.
-    any_changed |= update_schema(session, versions, available_migrations,
-                                 '__core__')
+    any_changed |= update_schema(engine, session, versions,
+                                 available_migrations, '__core__')
 
     if any_changed:
         logger.info("database auto-upgraded")
+
+def update_path(path):
+    # If the path includes no database type, assume sqlite.
+    #
+    # FIXME: I would like to phase this out and force clients to propagate
+    # paths, but it isn't a big deal.
+    if not path.startswith('mysql://') and not path.startswith('sqlite://'):
+        path = 'sqlite:///' + path
+
+    engine = sqlalchemy.create_engine(path, echo=True)
+
+    update(engine)

Modified: lnt/trunk/lnt/server/db/migrations/upgrade_0_to_1.py
URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/lnt/server/db/migrations/upgrade_0_to_1.py?rev=154553&r1=154552&r2=154553&view=diff
==============================================================================
--- lnt/trunk/lnt/server/db/migrations/upgrade_0_to_1.py (original)
+++ lnt/trunk/lnt/server/db/migrations/upgrade_0_to_1.py Wed Apr 11 18:14:43 2012
@@ -1,4 +1,4 @@
-def upgrade(session):
+def upgrade(engine):
     # Do nothing.
     #
     # Version 0 conceptually represents nothing, and version 1 is where we





More information about the llvm-commits mailing list