public inbox for [email protected]  
help / color / mirror / Atom feed
From: Célestin Matte <[email protected]>
To: [email protected]
Subject: Re: [PATCH] pgarchives: Fix database install procedure: remove redundant tables in schema.sql
Date: Fri, 22 Oct 2021 17:19:57 +0200
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
References: <[email protected]>

Hello,

Apologies, patch sent in previous email of this thread is incorrect. Please find correct patch attached.

In fact, the pgarchives repository is in a weird state, in which the migration adding two tables is missing (0005_apiclient_threadsubscription.py when running makemigrations). My guess is that this is because these tables use SERIALs, which django does not handle properly, and must by created using raw SQL. Am I right?
Is it something that should be fixed?


I would still need answers for the two questions asked in previous email:

> Additionally, I have two questions:
> - Where is the "tsparser" parser defined? (See commit e05f813b of pgarchives).
> It is used in schema.sql, but I haven't found its definition in the
> pgarchives, pglister or pgweb repositories. Is it an alias to
> pg_catalog.pg_ts_parser?
> (I have been able to complete the install procedure by reverting e05f813b,
> but I have no idea what the consequences are for the application)
> - Same question for /usr/share/postgresql/12/tsearch_data/pg_dict.stop
> I've found pg_dict.syn in pgweb, but not this file.
> 
> Cheers,
> 

Cheers,
-- 
Célestin Matte

Attachments:

  [text/x-patch] 0001-Fix-database-install-procedure-remove-redundant-tabl.patch (2.6K, 2-0001-Fix-database-install-procedure-remove-redundant-tabl.patch)
  download | inline diff:
From 8b76960c1b265b26801b5c7791db6c3e4f40bfc3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=A9lestin=20Matte?= <[email protected]>
Date: Mon, 18 Oct 2021 18:04:37 +0200
Subject: [PATCH] Fix database install procedure: remove redundant tables in
 schema.sql

Django's model and schema.sql both contain tables that are necessary for
the execution of the application, but are mutually exclusive.
This is due to some fields in the "messages" table that cannot be defined in
django, and definition of tables in schema.sql that are already created
by django.
---
 loader/sql/schema.sql | 43 ++++---------------------------------------
 1 file changed, 4 insertions(+), 39 deletions(-)

diff --git a/loader/sql/schema.sql b/loader/sql/schema.sql
index d9b5d5f..a86c6a9 100644
--- a/loader/sql/schema.sql
+++ b/loader/sql/schema.sql
@@ -2,23 +2,10 @@
 
 BEGIN;
 
-CREATE TABLE messages (
-   id SERIAL NOT NULL PRIMARY KEY,
-   parentid int REFERENCES messages,
-   threadid int NOT NULL,
-   _from text NOT NULL,
-   _to text NOT NULL,
-   cc text NOT NULL,
-   subject text NOT NULL,
-   date timestamptz NOT NULL,
-   loaddate timestamptz NOT NULL DEFAULT CURRENT_TIMESTAMP,
-   has_attachment boolean NOT NULL,
-   hiddenstatus int NULL,
-   messageid text NOT NULL,
-   bodytxt text NOT NULL,
-   rawtxt bytea NOT NULL,
-   fti tsvector NOT NULL
-);
+ALTER TABLE messages
+   ADD COLUMN rawtxt bytea NOT NULL,
+   ADD COLUMN fti tsvector NOT NULL;
+
 CREATE INDEX idx_messages_threadid ON messages(threadid);
 CREATE UNIQUE INDEX idx_messages_msgid ON messages(messageid);
 CREATE INDEX idx_messages_date ON messages(date);
@@ -42,21 +29,6 @@ CREATE TABLE unresolved_messages(
 
 CREATE UNIQUE INDEX idx_unresolved_msgid_message ON unresolved_messages(msgid, message);
 
-CREATE TABLE listgroups(
-   groupid int NOT NULL PRIMARY KEY,
-   groupname text NOT NULL UNIQUE,
-   sortkey int NOT NULL
-);
-
-CREATE TABLE lists(
-   listid int NOT NULL PRIMARY KEY,
-   listname text NOT NULL UNIQUE,
-   shortdesc text NOT NULL,
-   description text NOT NULL,
-   active boolean NOT NULL,
-   groupid int NOT NULL REFERENCES listgroups(groupid)
-);
-
 CREATE TABLE list_months(
    listid int NOT NULL REFERENCES lists(listid),
    year int NOT NULL,
@@ -71,13 +43,6 @@ CREATE TABLE list_threads(
 );
 CREATE INDEX list_threads_listid_idx ON list_threads(listid);
 
-CREATE TABLE attachments(
-   id serial not null primary key,
-   message int not null references messages(id),
-   filename text not null,
-   contenttype text not null,
-   attachment bytea not null
-);
 CREATE INDEX idx_attachments_msg ON attachments(message);
 
 CREATE TABLE apiclients(
-- 
2.33.1



view thread (4+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected]
  Subject: Re: [PATCH] pgarchives: Fix database install procedure: remove redundant tables in schema.sql
  In-Reply-To: <[email protected]>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox