From 8b1b2ea48ad75460287f1d3164d1f621759b1979 Mon Sep 17 00:00:00 2001 From: yoyuzh Date: Tue, 17 Mar 2026 17:06:29 +0800 Subject: [PATCH] connection success --- .DS_Store | Bin 0 -> 14340 bytes backend/.DS_Store | Bin 0 -> 6148 bytes backend/README.md | 37 +++++++++++++++++++++++++++++++++ backend/sql/mysql-init.sql | 7 +++++++ backend/sql/opengauss-init.sql | 9 +++++++- backend/src/.DS_Store | Bin 0 -> 6148 bytes 6 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 .DS_Store create mode 100644 backend/.DS_Store create mode 100644 backend/src/.DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..9ff8bc80f44f6c47b0d60723afe51fefc116b100 GIT binary patch literal 14340 zcmeHNYit!o6rQs!?Os^uwiYPdBDa*c1zM<5Ugq`%mPe@E(idR4_wKe`x_7tU-QMyD z5k(=2#snY855;KwW0WYtXrdzeM~wIbQ%NLB2%6|GW0b^T0(xe4Z@YWjYD`3k%p@~s zcIKR!GvA)GGiP@RAyCt&R1i{52oW(;Doa=#AS6VoC((YIhovlR0n9ToV_hc1BnGkd zu8K(99L7DoLBJ*|pN)A8=_E<7e4>{LWFI|?bm1Q?v6fsCBT*7(bzX1;I0762jsQo1 zBk)fVpnESSahyYW$r0cPa0CVspwEX8W=g{@-RDsD=)i&=;b}iT!n1^Rj00F($faSI z?sF&;MHwcF)DZwI+H{B8;;&?8vncTdrmo>GoSRbn7s$fE~1hJ zM8{Y^PI|~fvV&MO?r+e|xH~g-;Tp^@`J#Rc`IAJ$k!)gRaG&^V?pVLo>yG_itXJ18 zyS)572wB-alb^8f(_n{tmgY)->#>W~fOf zpeZV{Y;DmD#q6&!`wYcmvJt0442XdaxoFRx#Y^ul3oTi)Y;Rd;&$7kkWueNd%DsC7 z;>6NLD>ilX=n2Do0#|?u+{YUk?_3X-hp?85NO>@D-m|zklPL`&a9F8YXWdzm^tvyk z*Bux;P8uIDtlwzg_<(}-xh)ebq&!o@e>Wn)rJ;i6mOrrwt@tPVLp9@XQ0del~{ zb)7O}Tb>n9n!4U-TAHnyMq8_`?zGbb`MO%$Ei-A?vcWoJxzAEJsW_IFQtNO;9IAlM zwy~EEV>PQu3u$SXSq~wB;}a%NpE-BI;-xFY^$i>DAIOvQ3#3A6QcFs+w3x1L?$;E% zyDe(PRYTE?u6DcwhOKpKYBG=yWq~FmnotLdrc5me76n83XGL8-|?aO5a5(jgWulBA{{ zG!fYfI4w&mrQl{g8dG&y35blTYMB&lNja;Q*SU?W3Z-BxdQt+HV!3VAHNoHmbkg-v z%ih?l8mQ74(HUel_O)Bx(WJVuA5GM4U5l;kwqiRKs#i4Iq@4_nl3=4Kw$TBr6@{*0 z%G9Dw5h@{TMoL4M!295MhWw={ilu3bEDg_hs->rupIMD9GEkUia4Fr`r;*vD3ODj5 ze932$hsl%V7&%EkB&Wz1V0kr$e@Lh&2 zZ}8hPTp4c5-lM?f6@y2C42w^gL&t&9xqL?gd=LzuEfq-`x@mM_5B0Y|2Z@|ZtUL78 zQ?nz#;UOVGlo7Uk?`HvFM@iR1ejb>CBMsy6Z<|G@kcY{7*ZX4q;CkJ@p;cz~`Para zEMb2`^L4*2>_Fqwh4T1xfrdt^3vKu6vaNAQ7pHGXm&`t&F0dVkBe_S2UZWoDj*o;Q z97YbWR#bu~jsQo1Bft^34G{uotAdbfJ7j-yBRUL8m0^6ALqe|nEtobNkk@c5tN!V^b;Bft^h z2;6W4#yB&S)BpeKNB{r-hU>v6;0SO8ZXN=VT^FgV!THl)x-(UwuK+`sw_~O}r!mun zbtZxZWuX`BcRakHzvETWwsgY2Fs&oq=TNL+`p3o7oYt$@R>wtzSy?GyL`pWp@bz$^F$Tp8Pe z&59LAR3TeR#iR0*|KWS@Y1*n<*6k9Oa{E?Z9zVaH=HB%$-pzHsYCxFgyQS42AHSUUo;=^l z_TeeZhq$Kg^L;$-=evP-kgt&6)x{Zb2AlzBz!?}YfSN5*9vFJ>3^)VMz&8VOJ_Izu zn6NX{qXV5j0e}U}D$w=L2@GNY#)O?AED*L(poMaJVz7n79@4y+ursu9V$Fe|ABP literal 0 HcmV?d00001 diff --git a/backend/README.md b/backend/README.md index 7742c10..7efbb91 100644 --- a/backend/README.md +++ b/backend/README.md @@ -43,6 +43,43 @@ mvn spring-boot:run -Dspring-boot.run.profiles=dev - MySQL: `sql/mysql-init.sql` - openGauss: `sql/opengauss-init.sql` +## 旧库升级 + +如果服务器数据库是按旧版脚本初始化的,需要先补齐下面这些字段,否则登录后的首页接口可能在查询用户、课表或成绩时直接报 500。 + +MySQL: + +```sql +ALTER TABLE portal_user + ADD COLUMN last_school_student_id VARCHAR(64) NULL, + ADD COLUMN last_school_semester VARCHAR(64) NULL; + +ALTER TABLE portal_course + ADD COLUMN semester VARCHAR(64) NULL, + ADD COLUMN student_id VARCHAR(64) NULL; + +ALTER TABLE portal_grade + ADD COLUMN student_id VARCHAR(64) NULL; + +CREATE INDEX idx_course_user_semester ON portal_course (user_id, semester, student_id); +CREATE INDEX idx_grade_user_semester ON portal_grade (user_id, semester, student_id); +``` + +openGauss: + +```sql +ALTER TABLE portal_user ADD COLUMN IF NOT EXISTS last_school_student_id VARCHAR(64); +ALTER TABLE portal_user ADD COLUMN IF NOT EXISTS last_school_semester VARCHAR(64); + +ALTER TABLE portal_course ADD COLUMN IF NOT EXISTS semester VARCHAR(64); +ALTER TABLE portal_course ADD COLUMN IF NOT EXISTS student_id VARCHAR(64); + +ALTER TABLE portal_grade ADD COLUMN IF NOT EXISTS student_id VARCHAR(64); + +CREATE INDEX IF NOT EXISTS idx_course_user_semester ON portal_course (user_id, semester, student_id); +CREATE INDEX IF NOT EXISTS idx_grade_user_semester ON portal_grade (user_id, semester, student_id); +``` + ## 主要接口 - `POST /api/auth/register` diff --git a/backend/sql/mysql-init.sql b/backend/sql/mysql-init.sql index ec97608..97a34ec 100644 --- a/backend/sql/mysql-init.sql +++ b/backend/sql/mysql-init.sql @@ -7,6 +7,8 @@ CREATE TABLE IF NOT EXISTS portal_user ( email VARCHAR(128) NOT NULL, password_hash VARCHAR(255) NOT NULL, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + last_school_student_id VARCHAR(64), + last_school_semester VARCHAR(64), CONSTRAINT uk_portal_user_username UNIQUE (username), CONSTRAINT uk_portal_user_email UNIQUE (email) ); @@ -29,6 +31,8 @@ CREATE TABLE IF NOT EXISTS portal_course ( id BIGINT PRIMARY KEY AUTO_INCREMENT, user_id BIGINT NOT NULL, course_name VARCHAR(255) NOT NULL, + semester VARCHAR(64), + student_id VARCHAR(64), teacher VARCHAR(255), classroom VARCHAR(255), day_of_week INT, @@ -44,11 +48,14 @@ CREATE TABLE IF NOT EXISTS portal_grade ( course_name VARCHAR(255) NOT NULL, grade DOUBLE NOT NULL, semester VARCHAR(64) NOT NULL, + student_id VARCHAR(64), created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CONSTRAINT fk_portal_grade_user FOREIGN KEY (user_id) REFERENCES portal_user (id) ); CREATE INDEX idx_user_created_at ON portal_user (created_at); CREATE INDEX idx_file_created_at ON portal_file (created_at); +CREATE INDEX idx_course_user_semester ON portal_course (user_id, semester, student_id); CREATE INDEX idx_course_user_created ON portal_course (user_id, created_at); +CREATE INDEX idx_grade_user_semester ON portal_grade (user_id, semester, student_id); CREATE INDEX idx_grade_user_created ON portal_grade (user_id, created_at); diff --git a/backend/sql/opengauss-init.sql b/backend/sql/opengauss-init.sql index 01eeefa..db3414e 100644 --- a/backend/sql/opengauss-init.sql +++ b/backend/sql/opengauss-init.sql @@ -3,7 +3,9 @@ CREATE TABLE IF NOT EXISTS portal_user ( username VARCHAR(64) NOT NULL UNIQUE, email VARCHAR(128) NOT NULL UNIQUE, password_hash VARCHAR(255) NOT NULL, - created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP + created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + last_school_student_id VARCHAR(64), + last_school_semester VARCHAR(64) ); CREATE TABLE IF NOT EXISTS portal_file ( @@ -23,6 +25,8 @@ CREATE TABLE IF NOT EXISTS portal_course ( id BIGSERIAL PRIMARY KEY, user_id BIGINT NOT NULL REFERENCES portal_user (id), course_name VARCHAR(255) NOT NULL, + semester VARCHAR(64), + student_id VARCHAR(64), teacher VARCHAR(255), classroom VARCHAR(255), day_of_week INTEGER, @@ -37,10 +41,13 @@ CREATE TABLE IF NOT EXISTS portal_grade ( course_name VARCHAR(255) NOT NULL, grade DOUBLE PRECISION NOT NULL, semester VARCHAR(64) NOT NULL, + student_id VARCHAR(64), created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ); CREATE INDEX IF NOT EXISTS idx_user_created_at ON portal_user (created_at); CREATE INDEX IF NOT EXISTS idx_file_created_at ON portal_file (created_at); +CREATE INDEX IF NOT EXISTS idx_course_user_semester ON portal_course (user_id, semester, student_id); CREATE INDEX IF NOT EXISTS idx_course_user_created ON portal_course (user_id, created_at); +CREATE INDEX IF NOT EXISTS idx_grade_user_semester ON portal_grade (user_id, semester, student_id); CREATE INDEX IF NOT EXISTS idx_grade_user_created ON portal_grade (user_id, created_at); diff --git a/backend/src/.DS_Store b/backend/src/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..55e74ca5f335a95916b0b22f0ba14682bc51cbad GIT binary patch literal 6148 zcmeHKOHRWu5S^h}1hMIor4c9S4NMhIkPDR3@{t-+iL%d*E#fTPftzp)#2e25v9MSo z1T&KT#`EzcPl}x(BA(x^W<*mWsxbsvl!A!4=-RVjakA{Oxtz7@;v>=ku% zM%Q$cJwG??*w^(k*}?$$4_CwFbYSYU`q+#m`B mdiE25g`6XY$*KMzI^v??peVbDJ*5NvM<5a6lQZxG47>sNqC^S+ literal 0 HcmV?d00001