annotate tools/migrate-queries.py @ 1850:6e80f8f760a4

*** empty log message ***
author Richard Jones <richard@users.sourceforge.net>
date Fri, 17 Oct 2003 01:53:11 +0000
parents
children a15f91a10e45
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1850
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1 #! /usr/bin/env python
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
2 '''
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
3 migrate-queries <instance-home> [<instance-home> *]
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
4
6e80f8f760a4 *** 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
6e80f8f760a4 *** 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
6e80f8f760a4 *** 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
6e80f8f760a4 *** 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.
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
9 '''
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
10 __author__ = 'James Kew <jkew@mediabright.co.uk>'
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
11
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
12 import sys
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
13 import roundup.instance
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
14
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
15 if len(sys.argv) == 1:
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
16 print __doc__
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
17 sys.exit(1)
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
18
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
19 # Iterate over all instance homes specified in argv.
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
20 for home in sys.argv[1:]:
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
21 # Do some basic exception handling to catch bad arguments.
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
22 try:
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
23 instance = roundup.instance.open(home)
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
24 except:
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
25 print 'Cannot open instance home directory %s!' % home
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
26 continue
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
27
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
28 db = instance.open('admin')
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
29
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
30 print 'Migrating active queries in %s (%s):'%(
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
31 instance.config.TRACKER_NAME, home)
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
32 for query in db.query.list():
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
33 url = db.query.get(query, 'url')
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
34 if url[0] == '?':
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
35 url = url[1:]
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
36 print ' Migrating query%s (%s)'%(query,
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
37 db.query.get(query, 'name'))
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
38 db.query.set(query, url=url)
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
39
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
40 db.commit()
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
41 db.close()
6e80f8f760a4 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
42

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