5ef2bfcd78
Логика процедур Фонтвьель (22.10.2026) на PSQL; привязки к справочникам клиента — FTV_M2M_SETTINGS; текст ошибки — в COMMENT через контекст транзакции. README — что проверить на базе клиента. Проверено на встроенном Firebird 2.5.9 (test/run.sh): все ветки событий, операция с проводкой, справочник, ошибки. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
30 lines
1.8 KiB
Bash
Executable File
30 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
# Прогон процедур обмена M2M на встроенном Firebird 2.5.9 (Classic, без службы и сетевого порта).
|
|
# Заглушки Fancy (stub_fancy.sql) — колонки таблиц по схеме Fancy MSSQL и упрощённые FU_NEXT_DOC_NUM / OD_PR_INS_WIRS.
|
|
# Использование: deploy/depo/fancy-m2m-firebird/test/run.sh [рабочий каталог, по умолчанию /tmp/bj-fb25]
|
|
set -euo pipefail
|
|
D=$(cd "$(dirname "$0")/.." && pwd)
|
|
W=${1:-/tmp/bj-fb25}
|
|
mkdir -p "$W"
|
|
if [ ! -x "$W/fb/opt/firebird/bin/isql" ]; then
|
|
curl -fsSL -o "$W/fbcs.tar.gz" https://github.com/FirebirdSQL/firebird/releases/download/R2_5_9/FirebirdCS-2.5.9.27139-0.amd64.tar.gz
|
|
mkdir -p "$W/dl" "$W/fb" "$W/emb" "$W/lock"
|
|
tar -xzf "$W/fbcs.tar.gz" -C "$W/dl"
|
|
tar -xzf "$W"/dl/*/buildroot.tar.gz -C "$W/fb"
|
|
F="$W/fb/opt/firebird"
|
|
ln -sf "$(ls /usr/lib/x86_64-linux-gnu/libncurses.so.6* | head -1)" "$F/lib/libncurses.so.5"
|
|
ln -sf "$(ls /usr/lib/x86_64-linux-gnu/libtinfo.so.6* | head -1)" "$F/lib/libtinfo.so.5"
|
|
ln -sf "$F/lib/libfbembed.so.2.5" "$W/emb/libfbclient.so.2"
|
|
fi
|
|
export ISC_USER=SYSDBA ISC_PASSWORD=masterkey # встроенный режим: пароль не проверяется
|
|
export FIREBIRD="$W/fb/opt/firebird" FIREBIRD_LOCK="$W/lock" LD_LIBRARY_PATH="$W/emb:$W/fb/opt/firebird/lib"
|
|
ISQL="$FIREBIRD/bin/isql"
|
|
rm -f "$W/t.fdb"
|
|
printf "CREATE DATABASE '%s/t.fdb' DEFAULT CHARACTER SET WIN1251;\nCOMMIT;\n" "$W" > "$W/c.sql"
|
|
"$ISQL" -q -i "$W/c.sql" </dev/null
|
|
sed 's/:BJ_USER/BJ_USER/' "$D/20_FTV_M2M_GRANTS.sql" > "$W/g.sql"
|
|
for f in "$D/test/stub_fancy.sql" "$D/00_FTV_M2M_TABLES.sql" "$D/10_FTV_M2M_PROCS.sql" "$W/g.sql" "$D/test/smoke.sql"; do
|
|
echo "== $(basename "$f")"
|
|
"$ISQL" -q -ch UTF8 -i "$f" "$W/t.fdb" </dev/null 2>&1 | sed -E 's/ {3,}/ /g' | { grep -v '^$' || true; }
|
|
done
|