40 lines
1.6 KiB
Bash
Executable File
40 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
||
# 查看数据库中的 lastUpdated 与条数,并提示如何用爬虫更新
|
||
# 用法: ./scripts/check-db-and-crawler.sh
|
||
|
||
PROJECT_ROOT="${PROJECT_ROOT:-$(cd "$(dirname "$0")/.." && pwd)}"
|
||
DB_PATH="${DB_PATH:-$PROJECT_ROOT/server/data.db}"
|
||
|
||
echo "=========================================="
|
||
echo "数据库与爬虫状态"
|
||
echo "DB: $DB_PATH"
|
||
echo "=========================================="
|
||
|
||
if [[ ! -f "$DB_PATH" ]]; then
|
||
echo "数据库文件不存在。请先执行: node server/seed.js"
|
||
exit 1
|
||
fi
|
||
|
||
if command -v sqlite3 &>/dev/null; then
|
||
UPDATED_AT=$(sqlite3 "$DB_PATH" "SELECT updated_at FROM situation WHERE id = 1;" 2>/dev/null || echo "?")
|
||
SU_COUNT=$(sqlite3 "$DB_PATH" "SELECT COUNT(*) FROM situation_update;" 2>/dev/null || echo "?")
|
||
NEWS_COUNT=$(sqlite3 "$DB_PATH" "SELECT COUNT(*) FROM news_content;" 2>/dev/null || echo "?")
|
||
echo "situation.updated_at (前端 lastUpdated): $UPDATED_AT"
|
||
echo "situation_update 条数: $SU_COUNT"
|
||
echo "news_content 条数: $NEWS_COUNT"
|
||
else
|
||
echo "未安装 sqlite3,无法直接查库。可安装: brew install sqlite3"
|
||
fi
|
||
|
||
echo ""
|
||
echo "--- 为何数据停在旧日期? ---"
|
||
echo " • lastUpdated 来自 situation.updated_at。"
|
||
echo " • 已改为:每次爬虫运行都会更新该时间(不再仅在有新资讯时更新)。"
|
||
echo " • 若从未跑爬虫或很久没跑,请执行一次爬虫:"
|
||
echo ""
|
||
echo " cd $PROJECT_ROOT && python crawler/run_once.py"
|
||
echo " 或: npm run crawler:once"
|
||
echo ""
|
||
echo " 若需定时更新,可启动常驻爬虫: python crawler/main.py"
|
||
echo "=========================================="
|