zulip/pgroonga/migrations/0001_enable.py

54 lines
1.4 KiB
Python
Raw Normal View History

from django.conf import settings
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("zerver", "0001_initial"),
]
database_setting = settings.DATABASES["default"]
operations = [
migrations.RunSQL(
[
(
"""
DO $$BEGIN
EXECUTE format('ALTER ROLE %%I SET search_path TO %%L,public,pgroonga,pg_catalog', %(USER)s, %(SCHEMA)s);
SET search_path = %(SCHEMA)s,public,pgroonga,pg_catalog;
ALTER TABLE zerver_message ADD COLUMN search_pgroonga text;
-- TODO: We want to use CREATE INDEX CONCURRENTLY but it can't be used in
-- transaction. Django uses transaction implicitly.
-- Django 1.10 may solve the problem.
CREATE INDEX zerver_message_search_pgroonga ON zerver_message
USING pgroonga(search_pgroonga pgroonga.text_full_text_search_ops);
END$$
""",
database_setting,
)
],
[
(
"""
DO $$BEGIN
SET search_path = %(SCHEMA)s,public,pgroonga,pg_catalog;
DROP INDEX zerver_message_search_pgroonga;
ALTER TABLE zerver_message DROP COLUMN search_pgroonga;
SET search_path = %(SCHEMA)s,public;
EXECUTE format('ALTER ROLE %%I SET search_path TO %%L,public', %(USER)s, %(SCHEMA)s);
END$$
""",
database_setting,
)
],
),
]