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:
parent
988324b82a
commit
773112d1c6
12 changed files with 7 additions and 175 deletions
File diff suppressed because one or more lines are too long
BIN
Database ERD.png
BIN
Database ERD.png
Binary file not shown.
Before Width: | Height: | Size: 271 KiB After Width: | Height: | Size: 270 KiB |
|
@ -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")
|
||||
}
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
);
|
|
@ -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
|
||||
);
|
||||
|
|
|
@ -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
|
||||
);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue