Index: agiletrac/env.py
===================================================================
--- agiletrac/env.py	(revision 306)
+++ agiletrac/env.py	(working copy)
@@ -2,7 +2,7 @@
 from trac.env import IEnvironmentSetupParticipant
 from trac.db import *
 
-current_db_version = 1
+current_db_version = 2
 
 class AgileTracSetup(Component):
     """Central functionality for the Agile-Trac plugin."""
Index: agiletrac/db/db2.py
===================================================================
--- agiletrac/db/db2.py	(revision 0)
+++ agiletrac/db/db2.py	(revision 0)
@@ -0,0 +1,42 @@
+from trac.db import Table, Column, Index, DatabaseManager
+
+def do_upgrade(env, cursor):
+
+    """Upgrade the iteration table
+    """
+    cursor.execute("CREATE TEMPORARY TABLE iteration_old AS SELECT * FROM iteration")
+    cursor.execute("DROP TABLE iteration")
+
+    iteration_table = Table('iteration', key='id')[
+        Column('id', auto_increment=True),
+        Column('summary'),
+        Column('start_date', type='int'),
+        Column('end_date', type='int'),
+        Index(['start_date']),
+        Index(['end_date'])]
+
+    iteration_ticket_table = Table('iteration_ticket')[
+        Column('iteration_id', type='int'),
+        Column('ticket_id', type='int'),
+        Index(['iteration_id']),
+        Index(['ticket_id'])]
+
+    db_connector, _ = DatabaseManager(env)._get_connector()
+    for stmt in db_connector.to_sql(iteration_table):
+        cursor.execute(stmt)
+
+    for stmt in db_connector.to_sql(iteration_ticket_table):
+        cursor.execute(stmt)
+
+    cursor.execute("INSERT INTO iteration (id, summary, start_date, end_date) "
+                   "SELECT id, summary, start_date, end_date FROM iteration_old")
+    cursor.execute("SELECT id, tickets FROM iteration_old")
+    for iteration_id, tickets in cursor.fetchall():
+        tickets = [int(i) for i in tickets.split() if i.strip()]
+        for ticket_id in tickets:
+            cursor.execute("INSERT INTO iteration_ticket (iteration_id, ticket_id) "
+                           "VALUES (%s, %s)" % (iteration_id, ticket_id))
+    cursor.execute("DROP TABLE iteration_old")
+    # Set database schema version.
+    cursor.execute("UPDATE system SET value=2 WHERE name='agiletrac_version' ")
+

