Loading...
Loading...
Compare original and translation side by side
$0state.sqlduckdb -init "$STATE_DIR/state.sql" -c "<QUERY>"$0state.sqlduckdb -init "$STATE_DIR/state.sql" -c "<QUERY>"$0$PWDRESOLVED_PATHRESOLVED_PATH="$(cd "$(dirname "$0")" 2>/dev/null && pwd)/$(basename "$0")"test -f "$RESOLVED_PATH"$0$PWDRESOLVED_PATHRESOLVED_PATH="$(cd "$(dirname "$0")" 2>/dev/null && pwd)/$(basename "$0")"test -f "$RESOLVED_PATH"command -v duckdb/duckdb-skills:install-duckdbcommand -v duckdb/duckdb-skills:install-duckdbduckdb "$RESOLVED_PATH" -c "PRAGMA version;"duckdb "$RESOLVED_PATH" -c "PRAGMA version;"duckdb "$RESOLVED_PATH" -csv -c "
SELECT table_name, estimated_size
FROM duckdb_tables()
ORDER BY table_name;
"duckdb "$RESOLVED_PATH" -csv -c "
DESCRIBE <table_name>;
SELECT count() AS row_count FROM <table_name>;
"duckdb "$RESOLVED_PATH" -csv -c "
SELECT table_name, estimated_size
FROM duckdb_tables()
ORDER BY table_name;
"duckdb "$RESOLVED_PATH" -csv -c "
DESCRIBE <table_name>;
SELECT count() AS row_count FROM <table_name>;
"undefinedundefined
If **neither exists**, ask the user:
> Where would you like to store the DuckDB session state for this project?
>
> 1. **In the project directory** (`.duckdb-skills/state.sql`) — colocated with the project, easy to find. You can choose to gitignore it.
> 2. **In your home directory** (`~/.duckdb-skills/<project-id>/state.sql`) — keeps the project directory clean.
Based on their choice:
**Option 1:**
```bash
STATE_DIR=".duckdb-skills"
mkdir -p "$STATE_DIR".duckdb-skills/echo '.duckdb-skills/' >> .gitignorePROJECT_ROOT="$(git rev-parse --show-toplevel 2>/dev/null || echo "$PWD")"
PROJECT_ID="$(echo "$PROJECT_ROOT" | tr '/' '-')"
STATE_DIR="$HOME/.duckdb-skills/$PROJECT_ID"
mkdir -p "$STATE_DIR"
如果**两个位置都不存在**,询问用户:
> 你希望将本项目的DuckDB会话状态存储在哪个位置?
>
> 1. **项目目录下**(`.duckdb-skills/state.sql`)—— 与项目同目录,易于查找,你可以选择将其加入gitignore。
> 2. **用户主目录下**(`~/.duckdb-skills/<project-id>/state.sql`)—— 保持项目目录整洁。
根据用户选择执行:
**选项1:**
```bash
STATE_DIR=".duckdb-skills"
mkdir -p "$STATE_DIR".duckdb-skills/echo '.duckdb-skills/' >> .gitignorePROJECT_ROOT="$(git rev-parse --show-toplevel 2>/dev/null || echo "$PWD")"
PROJECT_ID="$(echo "$PROJECT_ROOT" | tr '/' '-')"
STATE_DIR="$HOME/.duckdb-skills/$PROJECT_ID"
mkdir -p "$STATE_DIR"state.sqlmy_data.duckdbmy_datagrep -q "ATTACH.*RESOLVED_PATH" "$STATE_DIR/state.sql" 2>/dev/nullcat >> "$STATE_DIR/state.sql" <<'STATESQL'
ATTACH IF NOT EXISTS 'RESOLVED_PATH' AS my_data;
USE my_data;
STATESQLRESOLVED_PATHmy_datastate.sqlmy_data.duckdbmy_datagrep -q "ATTACH.*RESOLVED_PATH" "$STATE_DIR/state.sql" 2>/dev/nullcat >> "$STATE_DIR/state.sql" <<'STATESQL'
ATTACH IF NOT EXISTS 'RESOLVED_PATH' AS my_data;
USE my_data;
STATESQLRESOLVED_PATHmy_dataduckdb -init "$STATE_DIR/state.sql" -c "SHOW TABLES;"duckdb -init "$STATE_DIR/state.sql" -c "SHOW TABLES;"STATE_DIR/state.sql/duckdb-skills:querySTATE_DIR/state.sql/duckdb-skills:query