summaryrefslogtreecommitdiffstats
path: root/forum_modules/pgfulltext/management.py
blob: 15ba3bd7dfc4a2c45d9922f41fa0834af571ffa2 (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
import os

from django.db import connection, transaction
from django.conf import settings

import forum.models

if settings.DATABASE_ENGINE in ('postgresql_psycopg2', 'postgresql', ):
    from django.db.models.signals import post_syncdb

    def setup_pgfulltext(sender, **kwargs):
        if sender == forum.models:
           install_pg_fts()

    post_syncdb.connect(setup_pgfulltext)

def install_pg_fts():
    f = open(os.path.join(os.path.dirname(__file__), 'pg_fts_install.sql'), 'r')
    
    try:
        try:
            cursor = connection.cursor()
            cursor.execute(f.read())
            transaction.commit_unless_managed()
        except:
            pass
    finally:
        cursor.close()

    f.close()