WeKnora deployment source with the reviewed wiki identity, summary and recovery fixes
Anydoc / anydoc parser engine (push) Canceled after 0s
App / Format, vet, test, and build (push) Canceled after 0s
CLI / test (macos-latest / go 1.26) (push) Canceled after 0s
CLI / test (ubuntu-latest / go 1.26) (push) Canceled after 0s
CLI / test (windows-latest / go 1.26) (push) Canceled after 0s
Build and Push Docker Image / build-ui (push) Canceled after 0s
Build and Push Docker Image / build-docreader (push) Canceled after 0s
Build and Push Docker Image / build-sandbox (push) Canceled after 0s
Build and Push Docker Image / build-app (amd64, linux/amd64, ubuntu-latest) (push) Canceled after 0s
Build and Push Docker Image / build-app (arm64, linux/arm64, ubuntu-24.04-arm) (push) Canceled after 0s
DocReader / Python tests and Go client tests (push) Canceled after 0s
Build & Publish (dsh-weknora) / Typecheck, test, pack (push) Canceled after 0s
Build & Publish (dsh-weknora) / End-to-end inside dsh (pinned) (push) Canceled after 0s
Build & Publish (dsh-weknora) / End-to-end inside dsh (latest, advisory) (push) Canceled after 0s
Frontend / Test, type-check, and build (push) Canceled after 0s
Go Lint Cache / warm lint cache (.) (push) Canceled after 0s
Go Lint Cache / warm lint cache (cli) (push) Canceled after 0s
Go Lint Cache / warm lint cache (client) (push) Canceled after 0s
Build & Publish (mcp-server) / Test (Python 3.10) (push) Canceled after 0s
Build & Publish (mcp-server) / Test (Python 3.11) (push) Canceled after 0s
Build & Publish (mcp-server) / Test (Python 3.12) (push) Canceled after 0s
Build & Publish (mcp-server) / Test (Python 3.13) (push) Canceled after 0s
Build and Push Docker Image / merge (push) Canceled after 0s
Build & Publish (dsh-weknora) / Publish to npm (push) Canceled after 0s
Build & Publish (mcp-server) / Build sdist + wheel (push) Canceled after 0s
Build & Publish (mcp-server) / Publish to PyPI (push) Canceled after 0s
Anydoc / anydoc parser engine (push) Canceled after 0s
App / Format, vet, test, and build (push) Canceled after 0s
CLI / test (macos-latest / go 1.26) (push) Canceled after 0s
CLI / test (ubuntu-latest / go 1.26) (push) Canceled after 0s
CLI / test (windows-latest / go 1.26) (push) Canceled after 0s
Build and Push Docker Image / build-ui (push) Canceled after 0s
Build and Push Docker Image / build-docreader (push) Canceled after 0s
Build and Push Docker Image / build-sandbox (push) Canceled after 0s
Build and Push Docker Image / build-app (amd64, linux/amd64, ubuntu-latest) (push) Canceled after 0s
Build and Push Docker Image / build-app (arm64, linux/arm64, ubuntu-24.04-arm) (push) Canceled after 0s
DocReader / Python tests and Go client tests (push) Canceled after 0s
Build & Publish (dsh-weknora) / Typecheck, test, pack (push) Canceled after 0s
Build & Publish (dsh-weknora) / End-to-end inside dsh (pinned) (push) Canceled after 0s
Build & Publish (dsh-weknora) / End-to-end inside dsh (latest, advisory) (push) Canceled after 0s
Frontend / Test, type-check, and build (push) Canceled after 0s
Go Lint Cache / warm lint cache (.) (push) Canceled after 0s
Go Lint Cache / warm lint cache (cli) (push) Canceled after 0s
Go Lint Cache / warm lint cache (client) (push) Canceled after 0s
Build & Publish (mcp-server) / Test (Python 3.10) (push) Canceled after 0s
Build & Publish (mcp-server) / Test (Python 3.11) (push) Canceled after 0s
Build & Publish (mcp-server) / Test (Python 3.12) (push) Canceled after 0s
Build & Publish (mcp-server) / Test (Python 3.13) (push) Canceled after 0s
Build and Push Docker Image / merge (push) Canceled after 0s
Build & Publish (dsh-weknora) / Publish to npm (push) Canceled after 0s
Build & Publish (mcp-server) / Build sdist + wheel (push) Canceled after 0s
Build & Publish (mcp-server) / Publish to PyPI (push) Canceled after 0s
This commit is contained in:
Executable
+46
@@ -0,0 +1,46 @@
|
||||
#!/bin/sh
|
||||
set -eu
|
||||
|
||||
# Read-only preflight for the legacy SQLite -> native WeKnora migration.
|
||||
# It never writes to the source database and never imports data. The output is
|
||||
# intentionally small enough to attach to a migration review.
|
||||
DB_PATH=${LEGACY_DB_PATH:-/Volumes/Extreme\ SSD/yawan-storage/yawan-workbench/server/data/workspace.db}
|
||||
if [ ! -f "$DB_PATH" ]; then
|
||||
DB_PATH=${LEGACY_DB_PATH_FALLBACK:-/Users/macclaw/Desktop/yawan-workbench/server/data-dev/workspace.db}
|
||||
fi
|
||||
if [ ! -f "$DB_PATH" ]; then
|
||||
echo "legacy database not found; set LEGACY_DB_PATH" >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
command -v sqlite3 >/dev/null 2>&1 || { echo "sqlite3 is required" >&2; exit 2; }
|
||||
|
||||
sha=$(shasum -a 256 "$DB_PATH" | awk '{print $1}')
|
||||
size=$(wc -c < "$DB_PATH" | tr -d ' ')
|
||||
integrity=$(sqlite3 "$DB_PATH" 'PRAGMA integrity_check;' | tr '\n' ' ' | sed 's/[[:space:]]*$//')
|
||||
if [ "$integrity" != "ok" ]; then
|
||||
echo "legacy database integrity check failed: $integrity" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
count() {
|
||||
table=$1
|
||||
# sqlite3 exits non-zero for a missing table; surface that as zero only for
|
||||
# optional legacy tables so an audit can run against older snapshots.
|
||||
sqlite3 "$DB_PATH" "SELECT count(*) FROM \"$table\";" 2>/dev/null || echo 0
|
||||
}
|
||||
|
||||
printf '{\n'
|
||||
printf ' "path": %s,\n' "$(printf '%s' "$DB_PATH" | awk '{gsub(/\\/, "\\\\"); gsub(/"/, "\\\""); printf "\"%s\"", $0}')"
|
||||
printf ' "bytes": %s,\n' "$size"
|
||||
printf ' "sha256": "%s",\n' "$sha"
|
||||
printf ' "integrity": "ok",\n'
|
||||
printf ' "counts": {\n'
|
||||
tables='appuser knowledgebase knowledgefile knowledgecategory agent agentskill agentskillbinding canvas trainingmap segment digitalhuman memory knowledgeusage pointaccount pointtransaction auditlog systemlog'
|
||||
first=1
|
||||
for table in $tables; do
|
||||
[ "$first" -eq 1 ] || printf ',\n'
|
||||
first=0
|
||||
printf ' "%s": %s' "$table" "$(count "$table")"
|
||||
done
|
||||
printf '\n }\n}\n'
|
||||
Reference in New Issue
Block a user