Skip to content

Data migration — def-exsport-data-migration

CLI Deno sekali pakai yang membaca Google Sheets dan mengimpor barisnya ke database Postgres Exsport. Ini tool operasional, bukan service.

Cara halaman ini diverifikasi

Dibaca pada 2026-09-15 dari main.ts, deno.json dan file helper-nya. Checkout lokal: /Volumes/xpro/erisristemena/deno/def-exsport-data-migration.

Stack

Deno / TypeScript. Import (deno.json): postgres (deno.land 0.17), @std/dotenv, nanoid (npm), @std/assert. Entry main.ts, helper database.ts, exsport.ts, wms.ts. Task: dev = deno run --watch --allow-net --allow-read --allow-write --allow-env main.ts; start = sama tanpa --watch. Single-branch: main only.

Apa yang dilakukan

Ia autentikasi ke Google (Drive + Sheets read-only; credentials.jsontoken.json), membaca spreadsheet sumber, lalu menulis ke Postgres. Flag:

  • --auth, --list, --search — setup dan inspeksi.
  • --migrate — products dan articles dari sheet Product / Article.
  • --migrate-members, dan run bertanggal --migrate-members-251130, --migrate-members-260628 — membaca sheet Store + Profile Member.
  • --fix-missing-shortcodes — masih stub.

Koneksi Postgres dari POSTGRES_HOST/PORT/DATABASE/USER/PASSWORD; spreadsheet dari GOOGLE_SPREADSHEET_ID / GOOGLE_SHEET_NAME. Repo ini juga membawa data sumber member sebagai file CSV/XLSX yang di-commit (existing_members_batch_*).

Jalankan dengan sengaja, terhadap database yang di-.env sebagai snapshot, bukan produksi, kecuali task-nya memang migrasi sungguhan.