1
0
Fork 0
mirror of https://github.com/Eggbertx/gochan.git synced 2025-09-16 07:56:24 -07:00

Finish thread/post/file migration.

This commit is contained in:
comraderat 2020-06-11 20:11:46 +02:00
parent 3905ec1393
commit 3e564bcc4a
7 changed files with 112 additions and 21 deletions

View file

@ -267,4 +267,4 @@ CREATE TABLE DBPREFIXwordfilters(
); );
INSERT INTO DBPREFIXdatabase_version(version) INSERT INTO DBPREFIXdatabase_version(version)
VALUES(1); VALUES(1);

View file

@ -267,4 +267,4 @@ CREATE TABLE DBPREFIXwordfilters(
); );
INSERT INTO DBPREFIXdatabase_version(version) INSERT INTO DBPREFIXdatabase_version(version)
VALUES(1); VALUES(1);

View file

@ -264,4 +264,4 @@ CREATE TABLE DBPREFIXwordfilters(
); );
INSERT INTO DBPREFIXdatabase_version(version) INSERT INTO DBPREFIXdatabase_version(version)
VALUES(1); VALUES(1);

View file

@ -264,4 +264,4 @@ CREATE TABLE DBPREFIXwordfilters(
); );
INSERT INTO DBPREFIXdatabase_version(version) INSERT INTO DBPREFIXdatabase_version(version)
VALUES(1); VALUES(1);

View file

@ -95,24 +95,57 @@ INSERT INTO DBPREFIXposts(is_top_post, ip, created_on, name, tripcode, is_role_s
SELECT parentid = 0, ip, timestamp, name, tripcode, false, email, subject, SELECT parentid = 0, ip, timestamp, name, tripcode, false, email, subject,
message, message_raw, password, deleted_timestamp, deleted_timestamp > '2000-01-01', parentid, boardid, id from DBPREFIXposts_old WHERE parentid <> 0; message, message_raw, password, deleted_timestamp, deleted_timestamp > '2000-01-01', parentid, boardid, id from DBPREFIXposts_old WHERE parentid <> 0;
#IF NEVER #IF POSTGRES
UPDATE DBPREFIXposts as posts --Sets correct thread id
SET thread_id = thread.id UPDATE DBPREFIXposts as posts
FROM DBPREFIXthreads as threads SET thread_id = threads.id
WHERE threads.oldpostid = posts.oldparentid AND thread.board_id = posts.oldboardid; FROM DBPREFIXthreads as threads
WHERE threads.oldpostid = posts.oldparentid AND threads.board_id = posts.oldboardid;
#ENDIF
/* #IF MYSQL
UPDATE DBPREFIXposts as posts, DBPREFIXthreads as threads --Sets correct thread id
SET posts.thread_id = thread.id UPDATE DBPREFIXposts as posts, DBPREFIXthreads as threads
WHERE threads.oldpostid = posts.oldparentid AND thread.board_id = posts.oldboardid; SET posts.thread_id = threads.id
*/ WHERE threads.oldpostid = posts.oldparentid AND threads.board_id = posts.oldboardid;
INSERT INTO DBPREFIXfiles(file_oder, original_filename, filename, checksum, file_size, is_spoilered, width, height, thumbnail_width, thumbnail_height, oldpostid, oldboardid) #ENDIF
SELECT 1, filename_original, filename, file_checksum, filesize, false, image_w, image_h, thumb_w, thumb_h, id, boardid FROM DBPREFIXposts_old WHERE filename != '';
UPDATE DBPREFIXfiles as files, DBPREFIXposts as posts INSERT INTO DBPREFIXfiles(file_order, original_filename, filename, checksum, file_size, is_spoilered, width, height, thumbnail_width, thumbnail_height, oldpostid, oldboardid)
SET files.post_id = posts.id SELECT 1, filename_original, filename, file_checksum, filesize, false, image_w, image_h, thumb_w, thumb_h, id, boardid FROM DBPREFIXposts_old WHERE filename <> '';
WHERE files.oldpostid = posts.oldselfid AND files.oldboardid = posts.oldboardid;
--Redefine foreign keys and not nulls #IF POSTGRES
-- Creates files in files table
UPDATE DBPREFIXfiles as files
SET post_id = posts.id
FROM DBPREFIXposts as posts
WHERE files.oldpostid = posts.oldselfid AND files.oldboardid = posts.oldboardid;
#ENDIF
#IF MYSQL
-- Creates files in files table
UPDATE DBPREFIXfiles as files, DBPREFIXposts as posts
SET files.post_id = posts.id
WHERE files.oldpostid = posts.oldselfid AND files.oldboardid = posts.oldboardid;
#ENDIF
ALTER TABLE DBPREFIXthreads DROP COLUMN oldpostid;
ALTER TABLE DBPREFIXposts DROP COLUMN oldselfid;
ALTER TABLE DBPREFIXposts DROP COLUMN oldparentid;
ALTER TABLE DBPREFIXposts DROP COLUMN oldboardid;
ALTER TABLE DBPREFIXfiles DROP COLUMN oldpostid;
ALTER TABLE DBPREFIXfiles DROP COLUMN oldboardid;
ALTER TABLE DBPREFIXfiles ADD CONSTRAINT files_post_id_fk FOREIGN KEY (post_id) REFERENCES DBPREFIXposts(id);
ALTER TABLE DBPREFIXposts ADD CONSTRAINT posts_thread_id_fk FOREIGN KEY (thread_id) REFERENCES DBPREFIXthreads(id);
#IF POSTGRES
-- Drops not null constraint
ALTER TABLE DBPREFIXposts ALTER COLUMN thread_id SET NOT NULL;
ALTER TABLE DBPREFIXfiles ALTER COLUMN post_id SET NOT NULL;
#ENDIF
#IF MYSQL
-- Adds not null constraint
ALTER TABLE DBPREFIXposts MODIFY thread_id {fk to serial} NOT NULL;
ALTER TABLE DBPREFIXfiles MODIFY post_id {fk to serial} NOT NULL;
#ENDIF
#ENDIF NEVER

View file

@ -88,3 +88,31 @@ INSERT INTO DBPREFIXposts(is_top_post, ip, created_on, name, tripcode, is_role_s
SELECT parentid = 0, ip, timestamp, name, tripcode, false, email, subject, SELECT parentid = 0, ip, timestamp, name, tripcode, false, email, subject,
message, message_raw, password, deleted_timestamp, deleted_timestamp > '2000-01-01', parentid, boardid, id from DBPREFIXposts_old WHERE parentid <> 0; message, message_raw, password, deleted_timestamp, deleted_timestamp > '2000-01-01', parentid, boardid, id from DBPREFIXposts_old WHERE parentid <> 0;
--Sets correct thread id
UPDATE DBPREFIXposts as posts, DBPREFIXthreads as threads
SET posts.thread_id = threads.id
WHERE threads.oldpostid = posts.oldparentid AND threads.board_id = posts.oldboardid;
INSERT INTO DBPREFIXfiles(file_order, original_filename, filename, checksum, file_size, is_spoilered, width, height, thumbnail_width, thumbnail_height, oldpostid, oldboardid)
SELECT 1, filename_original, filename, file_checksum, filesize, false, image_w, image_h, thumb_w, thumb_h, id, boardid FROM DBPREFIXposts_old WHERE filename <> '';
-- Creates files in files table
UPDATE DBPREFIXfiles as files, DBPREFIXposts as posts
SET files.post_id = posts.id
WHERE files.oldpostid = posts.oldselfid AND files.oldboardid = posts.oldboardid;
ALTER TABLE DBPREFIXthreads DROP COLUMN oldpostid;
ALTER TABLE DBPREFIXposts DROP COLUMN oldselfid;
ALTER TABLE DBPREFIXposts DROP COLUMN oldparentid;
ALTER TABLE DBPREFIXposts DROP COLUMN oldboardid;
ALTER TABLE DBPREFIXfiles DROP COLUMN oldpostid;
ALTER TABLE DBPREFIXfiles DROP COLUMN oldboardid;
ALTER TABLE DBPREFIXfiles ADD CONSTRAINT files_post_id_fk FOREIGN KEY (post_id) REFERENCES DBPREFIXposts(id);
ALTER TABLE DBPREFIXposts ADD CONSTRAINT posts_thread_id_fk FOREIGN KEY (thread_id) REFERENCES DBPREFIXthreads(id);
-- Adds not null constraint
ALTER TABLE DBPREFIXposts MODIFY thread_id BIGINT NOT NULL;
ALTER TABLE DBPREFIXfiles MODIFY post_id BIGINT NOT NULL;

View file

@ -88,3 +88,33 @@ INSERT INTO DBPREFIXposts(is_top_post, ip, created_on, name, tripcode, is_role_s
SELECT parentid = 0, ip, timestamp, name, tripcode, false, email, subject, SELECT parentid = 0, ip, timestamp, name, tripcode, false, email, subject,
message, message_raw, password, deleted_timestamp, deleted_timestamp > '2000-01-01', parentid, boardid, id from DBPREFIXposts_old WHERE parentid <> 0; message, message_raw, password, deleted_timestamp, deleted_timestamp > '2000-01-01', parentid, boardid, id from DBPREFIXposts_old WHERE parentid <> 0;
--Sets correct thread id
UPDATE DBPREFIXposts as posts
SET thread_id = threads.id
FROM DBPREFIXthreads as threads
WHERE threads.oldpostid = posts.oldparentid AND threads.board_id = posts.oldboardid;
INSERT INTO DBPREFIXfiles(file_order, original_filename, filename, checksum, file_size, is_spoilered, width, height, thumbnail_width, thumbnail_height, oldpostid, oldboardid)
SELECT 1, filename_original, filename, file_checksum, filesize, false, image_w, image_h, thumb_w, thumb_h, id, boardid FROM DBPREFIXposts_old WHERE filename <> '';
-- Creates files in files table
UPDATE DBPREFIXfiles as files
SET post_id = posts.id
FROM DBPREFIXposts as posts
WHERE files.oldpostid = posts.oldselfid AND files.oldboardid = posts.oldboardid;
ALTER TABLE DBPREFIXthreads DROP COLUMN oldpostid;
ALTER TABLE DBPREFIXposts DROP COLUMN oldselfid;
ALTER TABLE DBPREFIXposts DROP COLUMN oldparentid;
ALTER TABLE DBPREFIXposts DROP COLUMN oldboardid;
ALTER TABLE DBPREFIXfiles DROP COLUMN oldpostid;
ALTER TABLE DBPREFIXfiles DROP COLUMN oldboardid;
ALTER TABLE DBPREFIXfiles ADD CONSTRAINT files_post_id_fk FOREIGN KEY (post_id) REFERENCES DBPREFIXposts(id);
ALTER TABLE DBPREFIXposts ADD CONSTRAINT posts_thread_id_fk FOREIGN KEY (thread_id) REFERENCES DBPREFIXthreads(id);
-- Drops not null constraint
ALTER TABLE DBPREFIXposts ALTER COLUMN thread_id SET NOT NULL;
ALTER TABLE DBPREFIXfiles ALTER COLUMN post_id SET NOT NULL;