annotate tools/migrate-queries.py @ 2041:2add75e296d2 maint-0.6

fixed rego
author Richard Jones <richard@users.sourceforge.net>
date Tue, 24 Feb 2004 21:13:26 +0000
parents fe15b8506d47
children a15f91a10e45
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1851
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1 #! /usr/bin/env python
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
2 '''
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
3 migrate-queries <instance-home> [<instance-home> *]
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
4
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
5 Migrate old queries in the specified instances to Roundup 0.6.0+ by
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
6 removing the leading ? from their URLs. 0.6.0+ queries do not carry a
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
7 leading ?; it is added by the 0.6.0 templating, so old queries lead
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
8 to query URLs with a double leading ?? and a consequent 404 Not Found.
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
9 '''
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
10 __author__ = 'James Kew <jkew@mediabright.co.uk>'
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
11
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
12 import sys
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
13 import roundup.instance
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
14
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
15 if len(sys.argv) == 1:
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
16 print __doc__
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
17 sys.exit(1)
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
18
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
19 # Iterate over all instance homes specified in argv.
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
20 for home in sys.argv[1:]:
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
21 # Do some basic exception handling to catch bad arguments.
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
22 try:
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
23 instance = roundup.instance.open(home)
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
24 except:
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
25 print 'Cannot open instance home directory %s!' % home
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
26 continue
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
27
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
28 db = instance.open('admin')
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
29
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
30 print 'Migrating active queries in %s (%s):'%(
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
31 instance.config.TRACKER_NAME, home)
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
32 for query in db.query.list():
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
33 url = db.query.get(query, 'url')
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
34 if url[0] == '?':
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
35 url = url[1:]
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
36 print ' Migrating query%s (%s)'%(query,
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
37 db.query.get(query, 'name'))
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
38 db.query.set(query, url=url)
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
39
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
40 db.commit()
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
41 db.close()
fe15b8506d47 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
42

Roundup Issue Tracker: http://roundup-tracker.org/