Code

Small readability improvements.
[roundup.git] / tools / migrate-queries.py
1 #! /usr/bin/env python\r
2 '''\r
3 migrate-queries <instance-home> [<instance-home> *]\r
4 \r
5 Migrate old queries in the specified instances to Roundup 0.6.0+ by\r
6 removing the leading ? from their URLs. 0.6.0+ queries do not carry a\r
7 leading ?; it is added by the 0.6.0 templating, so old queries lead\r
8 to query URLs with a double leading ?? and a consequent 404 Not Found.\r
9 '''\r
10 __author__ = 'James Kew <jkew@mediabright.co.uk>'\r
11 \r
12 import sys\r
13 import roundup.instance\r
14 \r
15 if len(sys.argv) == 1:\r
16     print __doc__\r
17     sys.exit(1)\r
18 \r
19 # Iterate over all instance homes specified in argv.\r
20 for home in sys.argv[1:]:\r
21     # Do some basic exception handling to catch bad arguments.\r
22     try:\r
23         instance = roundup.instance.open(home)\r
24     except:\r
25         print 'Cannot open instance home directory %s!' % home\r
26         continue\r
27 \r
28     db = instance.open('admin')\r
29 \r
30     print 'Migrating active queries in %s (%s):'%(\r
31         instance.config.TRACKER_NAME, home)\r
32     for query in db.query.list():\r
33         url = db.query.get(query, 'url')\r
34         if url[0] == '?':\r
35             url = url[1:]\r
36             print '  Migrating query%s (%s)'%(query,\r
37                 db.query.get(query, 'name'))\r
38             db.query.set(query, url=url)\r
39 \r
40     db.commit()\r
41     db.close()\r
42 \r