diff --git a/bin/convertindexes.sh b/bin/convertindexes.sh deleted file mode 100755 index 74b3e8b8a5..0000000000 --- a/bin/convertindexes.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/bash - -set -e # 遇到错误立即退出 -set -u # 使用未定义的变量时报错 - -rootDir="$(dirname "$(dirname "$(realpath "$0")")")" -input_file="${rootDir}/db/zentao.sql" -output_file="${rootDir}/config/zentaouniqueindexes.php" - -# 检查输入文件是否存在 -if [ ! -f "${input_file}" ]; then - echo "Error: Input file ${input_file} not found!" >&2 - exit 1 -fi - -# 检查输入文件是否可读 -if [ ! -r "${input_file}" ]; then - echo "Error: Cannot read input file ${input_file}!" >&2 - exit 1 -fi - -if [ -f "${output_file}" ]; then - rm "${output_file}" || { - echo "Error: Failed to remove existing output file!" >&2 - exit 1 - } -fi - -# 提取索引并转换为PHP数组格式,通过管道排序,添加逗号分隔符,并删除空行 -( -echo "uniqueIndexes = [" -grep -oP 'CREATE UNIQUE INDEX[^;]+;' "${input_file}" | while read -r line; do - table="$(echo "${line}" | grep -oP 'ON `\K[^`]+' | sed "s/zt_/TABLE_/" | tr '[:lower:]' '[:upper:]')" - array_items="$(echo "${line}" | grep -oP '\(\K[^)]+' | sed "s/\`,\`/\`, \`/g" | sed "s/\`/\'/g")" - echo " ${table} => [${array_items}]" -done | sort | sed '$!s/$/,/' -echo "];" -) | tr -s '\n' > "${output_file}" || { - echo "Error: Failed to write to output file!" >&2 - exit 1 -} - -echo "Successfully generated ${output_file}" diff --git a/config/zentaouniqueindexes.php b/config/zentaouniqueindexes.php deleted file mode 100644 index 5784fed46c..0000000000 --- a/config/zentaouniqueindexes.php +++ /dev/null @@ -1,59 +0,0 @@ -uniqueIndexes = [ - TABLE_ATTEND => ['date', 'account'], - TABLE_ATTENDSTAT => ['month', 'account'], - TABLE_BASICMEAS => ['code'], - TABLE_CFD => ['execution', 'type', 'name', 'date'], - TABLE_CONFIG => ['vision', 'owner', 'module', 'section', 'key'], - TABLE_DEMANDREVIEW => ['demand', 'version', 'reviewer'], - TABLE_DEMANDSPEC => ['demand', 'version'], - TABLE_DEPLOYPRODUCT => ['deploy', 'product', 'release'], - TABLE_DESIGNSPEC => ['design', 'version'], - TABLE_DOCCONTENT => ['doc', 'version'], - TABLE_DUCKDBQUEUE => ['object'], - TABLE_EXTENSION => ['code'], - TABLE_FEEDBACKVIEW => ['account', 'product'], - TABLE_GAPANALYSIS => ['project', 'account'], - TABLE_GROUPPRIV => ['group', 'module', 'method'], - TABLE_INTERVENTION => ['project', 'activity'], - TABLE_KANBANCELL => ['kanban', 'type', 'lane', 'column'], - TABLE_LANG => ['lang', 'module', 'section', 'key', 'vision'], - TABLE_MEASRECORDS => ['year', 'month', 'day', 'week'], - TABLE_OAUTH => ['account', 'openID', 'providerType', 'providerID'], - TABLE_PIVOTSPEC => ['pivot', 'version'], - TABLE_PLANSTORY => ['plan', 'story'], - TABLE_PRACTICE => ['code'], - TABLE_PRIV => ['module', 'method'], - TABLE_PRIVLANG => ['objectID', 'objectType', 'lang'], - TABLE_PRIVRELATION => ['priv', 'type', 'relationPriv'], - TABLE_PROJECTADMIN => ['group', 'account'], - TABLE_PROJECTCASE => ['project', 'case'], - TABLE_PROJECTSPEC => ['project', 'version'], - TABLE_PROJECTSTORY => ['project', 'story'], - TABLE_RELATION => ['product', 'relation', 'AType', 'BType', 'AID', 'BID'], - TABLE_REPOBRANCH => ['repo', 'revision', 'branch'], - TABLE_REPORT => ['code'], - TABLE_REVIEWRESULT => ['review', 'reviewer', 'type'], - TABLE_RISKISSUE => ['risk', 'issue'], - TABLE_ROADMAPSTORY => ['roadmap', 'story'], - TABLE_SEARCHINDEX => ['objectType', 'objectID'], - TABLE_STORYESTIMATE => ['story', 'round'], - TABLE_STORYREVIEW => ['story', 'version', 'reviewer'], - TABLE_STORYSPEC => ['story', 'version'], - TABLE_STORYSTAGE => ['story', 'branch'], - TABLE_SUITECASE => ['suite', 'case'], - TABLE_TASKSPEC => ['task', 'version'], - TABLE_TEAM => ['root', 'type', 'account'], - TABLE_TESTRUN => ['task', 'case'], - TABLE_USER => ['account'], - TABLE_USERGROUP => ['account', 'group'], - TABLE_USERVIEW => ['account'], - TABLE_WEEKLYREPORT => ['project', 'weekStart'], - TABLE_WORKFLOW => ['group', 'app', 'module', 'vision'], - TABLE_WORKFLOWACTION => ['group', 'module', 'action', 'vision'], - TABLE_WORKFLOWFIELD => ['group', 'module', 'field'], - TABLE_WORKFLOWLAYOUT => ['group', 'module', 'action', 'ui', 'field', 'vision'], - TABLE_WORKFLOWLINKDATA => ['objectType', 'objectID', 'linkedType', 'linkedID'], - TABLE_WORKFLOWRELATIONLAYOUT => ['prev', 'next', 'action', 'ui', 'field'], - TABLE_WORKFLOWVERSION => ['module', 'version'] -];