blob: 939bb4c030925913d6897bfa2898ec87702a4ffa (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
sys.path.append('.')
from django.core.management import setup_environ
import settings
setup_environ(settings)
from django.db import connection, transaction
cursor = connection.cursor()
from main.models import Area
# early versions before 0.1: urn field doesn't exist for area
import htmlentitydefs, re
def slugfy(text, separator):
ret = u""
text = text.strip()
for c in text.lower():
try:
ret += htmlentitydefs.codepoint2name[ord(c)][0]
except:
ret += c
ret = re.sub("\W", " ", ret)
ret = re.sub(" +", separator, ret)
return ret.strip()
query = """SELECT a.attname AS field FROM pg_class c, pg_attribute a
WHERE c.relname = 'main_area' AND a.attnum > 0 AND a.attrelid = c.oid
AND a.attname='urn';"""
cursor.execute(query)
transaction.commit_unless_managed()
row = cursor.fetchone()
if not row:
query_update = "ALTER TABLE main_area ADD COLUMN urn VARCHAR(50) \
UNIQUE"
cursor.execute(query_update)
transaction.commit_unless_managed()
areas = Area.objects.all()
print " * urn field created in table main_area"
for area in areas:
urn = slugfy(area.name, "-")
area.urn = urn
area.save()
print " * area %s urn is now: %s" % (area.name, area.urn)
query = "ALTER TABLE main_area ALTER COLUMN urn SET not null;"
cursor.execute(query)
transaction.commit_unless_managed()
print " * urn field has now the constraint NOT NULL"
# early versions before 0.1: save area with wrong SRID
query = "SELECT AsText(ST_Transform(upper_left_corner, 4326)) from main_area;"
|