This commit is contained in:
2026-05-01 00:33:39 +08:00
parent 61969c5116
commit fe02603ba1
68 changed files with 4586 additions and 748 deletions

View File

@@ -77,6 +77,7 @@ wait_for_spacetime() {
while ((SECONDS < deadline)); do
if [[ -n "${process_pid}" ]] && ! kill -0 "${process_pid}" 2>/dev/null; then
echo "[dev:rust] SpacetimeDB 进程在就绪前退出。" >&2
print_spacetime_start_failure_diagnostics "${root_dir}"
exit 1
fi
@@ -88,6 +89,7 @@ wait_for_spacetime() {
done
echo "[dev:rust] 等待 SpacetimeDB 就绪超时: ${server}" >&2
print_spacetime_start_failure_diagnostics "${root_dir}"
exit 1
}
@@ -115,6 +117,28 @@ request.on("error", () => process.exit(1));
' "${server}" >/dev/null 2>&1
}
print_spacetime_start_failure_diagnostics() {
local root_dir="$1"
local log_file="${root_dir}/data/logs/spacetime-standalone.log"
echo "[dev:rust] SpacetimeDB root-dir: ${root_dir}" >&2
if [[ ! -f "${log_file}" ]]; then
echo "[dev:rust] 未找到 SpacetimeDB standalone 日志: ${log_file}" >&2
return
fi
echo "[dev:rust] 最近 SpacetimeDB standalone 日志: ${log_file}" >&2
tail -n 80 "${log_file}" >&2 || true
if grep -q "mismatched database identity" "${log_file}" 2>/dev/null; then
echo "[dev:rust] 检测到本地 replica 与当前数据库 identity 不一致。" >&2
echo "[dev:rust] 常见原因是同一个 root-dir 保留了旧库 data/replicas/1但 control-db 已指向新库。" >&2
echo "[dev:rust] 若这是可丢弃的本地开发库,请先停止 SpacetimeDB再备份或移走 ${root_dir}/data 后重新启动。" >&2
echo "[dev:rust] 若需要保留数据,不要清理目录;请改回创建旧库的 database/root-dir或先走迁移导出。" >&2
fi
}
describe_spacetime_root_owner() {
local root_dir="$1"
local windows_root_dir="${root_dir}"