diff examples/trac/trac/upgrades/db14.py @ 39:93b4dcbafd7b trunk

Copy Trac to main branch.
author cmlenz
date Mon, 03 Jul 2006 18:53:27 +0000
parents
children
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/examples/trac/trac/upgrades/db14.py
@@ -0,0 +1,33 @@
+sql = [
+"""CREATE TEMPORARY TABLE node_change_old AS SELECT * FROM node_change;""",
+"""DROP TABLE node_change;""",
+"""CREATE TABLE node_change (
+    rev             text,
+    path            text,
+    kind            char(1),
+    change          char(1),
+    base_path       text,
+    base_rev        text,
+    UNIQUE(rev, path, change)
+);""",
+"""INSERT INTO node_change (rev,path,kind,change,base_path,base_rev)
+    SELECT rev,path,kind,change,base_path,base_rev FROM node_change_old;""",
+"""DROP TABLE node_change_old;"""
+]
+
+def do_upgrade(env, ver, cursor):
+    # Wiki pages were accidentially created with the version number starting at
+    # 0 instead of 1; This should fix that
+    cursor.execute("SELECT name, version FROM wiki WHERE name IN "
+                   "(SELECT name FROM wiki WHERE version=0) ORDER BY name,"
+                   "version DESC")
+    result = cursor.fetchall()
+    if result:
+        cursor.executemany("UPDATE wiki SET version=version+1 WHERE name=%s " 
+                           "and version=%s",
+                           [tuple(row) for row in result])
+
+    # Correct difference between db_default.py and upgrades/db10.py: The
+    # 'change' was missing from the uniqueness constraint
+    for s in sql:
+        cursor.execute(s)
Copyright (C) 2012-2017 Edgewall Software