1
0
Fork 0
mirror of https://github.com/Eggbertx/gochan.git synced 2025-09-03 17:36:23 -07:00

Remove wordfilter migration

Wordfilter is unused in current gochan codebase,
Remove migrating sql to make it simpler
Make staff reference in wordfilter non-null again
(Making it nullable was a compromise for migrating)
This commit is contained in:
comraderat 2020-07-08 18:41:28 +02:00
parent 988324b82a
commit 773112d1c6
12 changed files with 7 additions and 175 deletions

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 271 KiB

After

Width:  |  Height:  |  Size: 270 KiB

Before After
Before After

View file

@ -63,10 +63,6 @@ func migratePreApril2020Database(dbType string) error {
if err != nil {
return err
}
err = dropTable("wordfilters_old_normalized")
if err != nil {
return err
}
return dropTable("numbersequel_temp")
}

View file

@ -257,7 +257,7 @@ CREATE TABLE DBPREFIXfile_ban(
CREATE TABLE DBPREFIXwordfilters(
id {serial pk},
board_id {fk to serial},
staff_id {fk to serial},
staff_id {fk to serial} NOT NULL,
staff_note VARCHAR(255) NOT NULL,
issued_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
search VARCHAR(75) NOT NULL,

View file

@ -257,7 +257,7 @@ CREATE TABLE DBPREFIXfile_ban(
CREATE TABLE DBPREFIXwordfilters(
id BIGINT NOT NULL AUTO_INCREMENT UNIQUE PRIMARY KEY,
board_id BIGINT,
staff_id BIGINT,
staff_id BIGINT NOT NULL,
staff_note VARCHAR(255) NOT NULL,
issued_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
search VARCHAR(75) NOT NULL,

View file

@ -257,7 +257,7 @@ CREATE TABLE DBPREFIXfile_ban(
CREATE TABLE DBPREFIXwordfilters(
id BIGSERIAL PRIMARY KEY,
board_id BIGINT,
staff_id BIGINT,
staff_id BIGINT NOT NULL,
staff_note VARCHAR(255) NOT NULL,
issued_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
search VARCHAR(75) NOT NULL,

View file

@ -257,7 +257,7 @@ CREATE TABLE DBPREFIXfile_ban(
CREATE TABLE DBPREFIXwordfilters(
id {serial pk},
board_id {fk to serial},
staff_id {fk to serial},
staff_id {fk to serial} NOT NULL,
staff_note VARCHAR(255) NOT NULL,
issued_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
search VARCHAR(75) NOT NULL,

View file

@ -257,7 +257,7 @@ CREATE TABLE DBPREFIXfile_ban(
CREATE TABLE DBPREFIXwordfilters(
id BIGINT NOT NULL AUTO_INCREMENT UNIQUE PRIMARY KEY,
board_id BIGINT,
staff_id BIGINT,
staff_id BIGINT NOT NULL,
staff_note VARCHAR(255) NOT NULL,
issued_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
search VARCHAR(75) NOT NULL,

View file

@ -257,7 +257,7 @@ CREATE TABLE DBPREFIXfile_ban(
CREATE TABLE DBPREFIXwordfilters(
id BIGSERIAL PRIMARY KEY,
board_id BIGINT,
staff_id BIGINT,
staff_id BIGINT NOT NULL,
staff_note VARCHAR(255) NOT NULL,
issued_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
search VARCHAR(75) NOT NULL,

View file

@ -299,71 +299,4 @@ INSERT INTO DBPREFIXreports(post_id, ip, reason, is_cleared)(
SELECT post.id, report.id, report.reason, report.cleared
FROM DBPREFIXreports_old as report
JOIN DBPREFIXposts as post on post.oldselfid = report.postid
);
--wordfilters
--normalize boards
--Create copy of table structure and drop not null constraint on boards
#IF MYSQL
CREATE TABLE DBPREFIXwordfilters_old_normalized SELECT * FROM DBPREFIXwordfilters_old LIMIT 0;
ALTER TABLE DBPREFIXwordfilters_old_normalized MODIFY boards VARCHAR(255);
#ENDIF
#IF POSTGRES
CREATE TABLE DBPREFIXwordfilters_old_normalized (like DBPREFIXwordfilters_old including all);
ALTER TABLE DBPREFIXwordfilters_old_normalized ALTER COLUMN boards DROP NOT NULL;
#ENDIF
--needed because id sequence is otherwise shared between this and the old table
ALTER TABLE DBPREFIXwordfilters_old_normalized DROP COLUMN id;
ALTER TABLE DBPREFIXwordfilters_old_normalized ADD COLUMN old_id int;
INSERT INTO DBPREFIXwordfilters_old_normalized(old_id, search, change_to, regex, boards)
(SELECT
filters.id,
filters.search,
filters.change_to,
filters.regex,
#IF MYSQL
TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX(filters.boards, ',', nums.num), ',', -1))
#ENDIF
#IF POSTGRES
TRIM(SPLIT_PART(filters.boards, ',', nums.num))
#ENDIF
FROM
DBPREFIXnumbersequel_temp AS nums INNER JOIN DBPREFIXwordfilters_old AS filters
ON TRUE
WHERE CHAR_LENGTH(filters.boards)-CHAR_LENGTH(REPLACE(filters.boards, ',', '')) >= nums.num-1);
--replace * with null
UPDATE DBPREFIXwordfilters_old_normalized
SET boards = null
WHERE boards = '*';
ALTER TABLE DBPREFIXwordfilters_old_normalized ADD COLUMN board_id int;
--fix board id
#IF POSTGRES
UPDATE DBPREFIXwordfilters_old_normalized as filters
SET board_id = boards.id
FROM DBPREFIXboards as boards
WHERE filters.boards = boards.dir;
#ENDIF
#IF MYSQL
UPDATE DBPREFIXwordfilters_old_normalized as filters, DBPREFIXboards as boards
SET filters.board_id = boards.id
WHERE filters.boards = boards.dir;
#ENDIF
INSERT INTO DBPREFIXwordfilters(board_id, staff_note, issued_at, search, is_regex, change_to)(
SELECT
board_id,
'No staff, staff note or date.',
CURRENT_TIMESTAMP,
search,
regex,
change_to
FROM DBPREFIXwordfilters_old_normalized
);

View file

@ -241,51 +241,3 @@ INSERT INTO DBPREFIXreports(post_id, ip, reason, is_cleared)(
FROM DBPREFIXreports_old as report
JOIN DBPREFIXposts as post on post.oldselfid = report.postid
);
--wordfilters
--normalize boards
--Create copy of table structure and drop not null constraint on boards
CREATE TABLE DBPREFIXwordfilters_old_normalized SELECT * FROM DBPREFIXwordfilters_old LIMIT 0;
ALTER TABLE DBPREFIXwordfilters_old_normalized MODIFY boards VARCHAR(255);
--needed because id sequence is otherwise shared between this and the old table
ALTER TABLE DBPREFIXwordfilters_old_normalized DROP COLUMN id;
ALTER TABLE DBPREFIXwordfilters_old_normalized ADD COLUMN old_id int;
INSERT INTO DBPREFIXwordfilters_old_normalized(old_id, search, change_to, regex, boards)
(SELECT
filters.id,
filters.search,
filters.change_to,
filters.regex,
TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX(filters.boards, ',', nums.num), ',', -1))
FROM
DBPREFIXnumbersequel_temp AS nums INNER JOIN DBPREFIXwordfilters_old AS filters
ON TRUE
WHERE CHAR_LENGTH(filters.boards)-CHAR_LENGTH(REPLACE(filters.boards, ',', '')) >= nums.num-1);
--replace * with null
UPDATE DBPREFIXwordfilters_old_normalized
SET boards = null
WHERE boards = '*';
ALTER TABLE DBPREFIXwordfilters_old_normalized ADD COLUMN board_id int;
--fix board id
UPDATE DBPREFIXwordfilters_old_normalized as filters, DBPREFIXboards as boards
SET filters.board_id = boards.id
WHERE filters.boards = boards.dir;
INSERT INTO DBPREFIXwordfilters(board_id, staff_note, issued_at, search, is_regex, change_to)(
SELECT
board_id,
'No staff, staff note or date.',
CURRENT_TIMESTAMP,
search,
regex,
change_to
FROM DBPREFIXwordfilters_old_normalized
);

View file

@ -245,52 +245,3 @@ INSERT INTO DBPREFIXreports(post_id, ip, reason, is_cleared)(
FROM DBPREFIXreports_old as report
JOIN DBPREFIXposts as post on post.oldselfid = report.postid
);
--wordfilters
--normalize boards
--Create copy of table structure and drop not null constraint on boards
CREATE TABLE DBPREFIXwordfilters_old_normalized (like DBPREFIXwordfilters_old including all);
ALTER TABLE DBPREFIXwordfilters_old_normalized ALTER COLUMN boards DROP NOT NULL;
--needed because id sequence is otherwise shared between this and the old table
ALTER TABLE DBPREFIXwordfilters_old_normalized DROP COLUMN id;
ALTER TABLE DBPREFIXwordfilters_old_normalized ADD COLUMN old_id int;
INSERT INTO DBPREFIXwordfilters_old_normalized(old_id, search, change_to, regex, boards)
(SELECT
filters.id,
filters.search,
filters.change_to,
filters.regex,
TRIM(SPLIT_PART(filters.boards, ',', nums.num))
FROM
DBPREFIXnumbersequel_temp AS nums INNER JOIN DBPREFIXwordfilters_old AS filters
ON TRUE
WHERE CHAR_LENGTH(filters.boards)-CHAR_LENGTH(REPLACE(filters.boards, ',', '')) >= nums.num-1);
--replace * with null
UPDATE DBPREFIXwordfilters_old_normalized
SET boards = null
WHERE boards = '*';
ALTER TABLE DBPREFIXwordfilters_old_normalized ADD COLUMN board_id int;
--fix board id
UPDATE DBPREFIXwordfilters_old_normalized as filters
SET board_id = boards.id
FROM DBPREFIXboards as boards
WHERE filters.boards = boards.dir;
INSERT INTO DBPREFIXwordfilters(board_id, staff_note, issued_at, search, is_regex, change_to)(
SELECT
board_id,
'No staff, staff note or date.',
CURRENT_TIMESTAMP,
search,
regex,
change_to
FROM DBPREFIXwordfilters_old_normalized
);