mirror of
https://github.com/zkldi/Tachi.git
synced 2026-09-27 17:38:11 +03:00
46 lines
1.6 KiB
Plaintext
46 lines
1.6 KiB
Plaintext
# Known anonymised dataset filenames hosted at the CDN.
|
|
# Update these when new dumps are published.
|
|
dataset_cdn_base := "https://cdn-data.kamai.tachi.ac/datasets"
|
|
|
|
# Download an anonymised dataset dump from the CDN (if not already cached under
|
|
# datasets/) and restore it into a fresh local Postgres database called
|
|
# "tachi_dataset". Uses fzf to pick from the known list of available dumps.
|
|
# After loading, point POSTGRES_URL at that DB to use it.
|
|
load-tachi-dataset:
|
|
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
known_datasets=(
|
|
"tachi-kamai-2026-05.sql.gz"
|
|
"tachi-boku-2026-05.sql.gz"
|
|
)
|
|
|
|
file=$(printf '%s\n' "${known_datasets[@]}" | fzf --prompt="Select dataset: ")
|
|
|
|
local_file="datasets/$file"
|
|
|
|
# Use the cached file if it already exists, otherwise fetch from CDN.
|
|
if [[ -f "$local_file" ]]; then
|
|
echo "==> Using cached $local_file"
|
|
else
|
|
echo "==> Downloading $file from CDN..."
|
|
mkdir -p datasets
|
|
wget --progress=bar:force -O "$local_file" "{{dataset_cdn_base}}/$file"
|
|
fi
|
|
|
|
target_db="tachi_dataset"
|
|
|
|
echo "==> Preparing database '$target_db'..."
|
|
# Terminate any open connections so DROP DATABASE can proceed.
|
|
psql "{{POSTGRES_URL}}/postgres" -c \
|
|
"SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = '$target_db'"
|
|
psql "{{POSTGRES_URL}}/postgres" -c "DROP DATABASE IF EXISTS \"$target_db\""
|
|
psql "{{POSTGRES_URL}}/postgres" -c "CREATE DATABASE \"$target_db\""
|
|
|
|
echo "==> Restoring $file into '$target_db'..."
|
|
zcat "$local_file" | psql "{{POSTGRES_URL}}/$target_db"
|
|
|
|
echo ""
|
|
echo "Done! To use this dataset, set POSTGRES_URL in typescript/server/.env to:"
|
|
echo " {{POSTGRES_URL}}/$target_db"
|