Files
Bridge-and-Join-s/deploy/depo/fancy-m2m-firebird/test/run.sh
T
fontvielle 5ef2bfcd78 DEPO на Firebird 2.5: таблицы и процедуры обмена M2M (перенос с MSSQL), права, прогон на заглушках
Логика процедур Фонтвьель (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
2026-10-22 16:50:50 +03:00

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