[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