Mercurial > p > roundup > code
annotate tools/migrate-queries.py @ 2467:76ead526113d
client instances may be used as translation engines.
any backend translator may be passed as constructor
argument or via setTranslator() method. by default,
templating.translationService is used.
use this engine to translate client messages.
| author | Alexander Smishlajev <a1s@users.sourceforge.net> |
|---|---|
| date | Tue, 15 Jun 2004 09:19:49 +0000 |
| parents | 6e80f8f760a4 |
| children | a15f91a10e45 |
| 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 |
