fix(aihr): version candidate interview review migration
This commit is contained in:
@@ -579,6 +579,9 @@ contains backend/script/sql/update/aihr_20260714_org_hire_date_mysql8.sql "hire_
|
||||
contains backend/script/sql/update/aihr_20260714_org_hire_date_mysql8.sql "aihr_org_snapshot_table_exists"
|
||||
contains backend/script/sql/update/aihr_20260714_sop_requester_identity_mysql8.sql "aihr_sop_source_exists"
|
||||
contains backend/script/sql/update/aihr_20260714_sop_requester_identity_mysql8.sql "aihr_sop_prompt_version_exists"
|
||||
contains backend/script/sql/update/aihr_20260715_candidate_interview_review_mysql8.sql "aihr_candidate_material"
|
||||
contains backend/script/sql/update/aihr_20260715_candidate_interview_review_mysql8.sql "aihr_interview_result"
|
||||
contains backend/script/sql/update/aihr_20260715_candidate_interview_review_mysql8.sql "aihr_candidate_employee_link"
|
||||
contains scripts/tests/aihr-schema-migrations.test.sh "AIHR legacy schema migrations are idempotent"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrOrgSyncService.java "hireDate"
|
||||
contains frontend/src/api/aihr/practice.ts '/api/train/practice/scenarios/${id}/enabled'
|
||||
|
||||
@@ -9,6 +9,7 @@ fi
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||
MYSQL_CONTAINER="wygj-mysql"
|
||||
DB="wygj_aihr_schema_test_$$"
|
||||
LEGACY_DB="wygj_aihr_candidate_legacy_test_$$"
|
||||
|
||||
mysql() {
|
||||
docker exec -i "$MYSQL_CONTAINER" mysql -uroot -proot --default-character-set=utf8mb4 "$@"
|
||||
@@ -16,6 +17,7 @@ mysql() {
|
||||
|
||||
cleanup() {
|
||||
mysql -e "DROP DATABASE IF EXISTS \`$DB\`;" >/dev/null 2>&1 || true
|
||||
mysql -e "DROP DATABASE IF EXISTS \`$LEGACY_DB\`;" >/dev/null 2>&1 || true
|
||||
}
|
||||
trap cleanup EXIT
|
||||
|
||||
@@ -140,4 +142,26 @@ mysql "$DB" < "$ROOT_DIR/backend/script/sql/update/aihr_20260714_org_hire_date_m
|
||||
org_columns="$(mysql "$DB" -N -B -e "SELECT GROUP_CONCAT(column_name ORDER BY ordinal_position) FROM information_schema.columns WHERE table_schema='$DB' AND table_name='aihr_org_snapshot' AND column_name='hire_date';")"
|
||||
test "$org_columns" = 'hire_date'
|
||||
|
||||
echo "PASS: AIHR legacy schema migrations are idempotent, including practice evidence and knowledge feedback fields"
|
||||
mysql -e "CREATE DATABASE \`$LEGACY_DB\` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;"
|
||||
mysql "$LEGACY_DB" <<'SQL'
|
||||
CREATE TABLE aihr_candidate_material (
|
||||
id bigint NOT NULL AUTO_INCREMENT,
|
||||
status varchar(20) DEFAULT '待审核',
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDB;
|
||||
CREATE TABLE aihr_interview_result (
|
||||
id bigint NOT NULL AUTO_INCREMENT,
|
||||
session_id varchar(100) NOT NULL,
|
||||
total_score int,
|
||||
answers_json text,
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDB;
|
||||
SQL
|
||||
mysql "$LEGACY_DB" < "$ROOT_DIR/backend/script/sql/update/aihr_20260715_candidate_interview_review_mysql8.sql"
|
||||
mysql "$LEGACY_DB" < "$ROOT_DIR/backend/script/sql/update/aihr_20260715_candidate_interview_review_mysql8.sql"
|
||||
candidate_interview_tables="$(mysql "$LEGACY_DB" -N -B -e "SELECT GROUP_CONCAT(table_name ORDER BY table_name) FROM information_schema.tables WHERE table_schema='$LEGACY_DB' AND table_name IN ('aihr_candidate_material','aihr_interview_result','aihr_candidate_employee_link');")"
|
||||
test "$candidate_interview_tables" = 'aihr_candidate_employee_link,aihr_candidate_material,aihr_interview_result'
|
||||
candidate_interview_columns="$(mysql "$LEGACY_DB" -N -B -e "SELECT COUNT(*) FROM information_schema.columns WHERE table_schema='$LEGACY_DB' AND ((table_name = 'aihr_candidate_material' AND column_name IN ('reviewer','reviewed_time')) OR (table_name = 'aihr_interview_result' AND column_name IN ('questions_json','reviewed_score','review_status','reviewer','review_note','reviewed_time')));")"
|
||||
test "$candidate_interview_columns" = '8'
|
||||
|
||||
echo "PASS: AIHR legacy schema migrations are idempotent, including practice evidence, knowledge feedback, and candidate interview review fields"
|
||||
|
||||
Reference in New Issue
Block a user