freshyo/apps/migrator/README.md
2026-03-24 18:48:31 +05:30

1.2 KiB

Migrator

Data-only migration tool between Postgres and SQLite using Drizzle.

What it does

  • Copies data from source to target
  • Does NOT create or alter tables
  • Overwrites target data if any rows exist (via DELETE FROM in dependency-safe order)

Requirements

  • Tables must already exist on the target database
  • Schema must match the backend Drizzle schemas

Usage

Run from repo root:

  1. Edit the TypeScript config file:

apps/migrator/migrator.config.ts

  1. Run migration:
bun --cwd apps/migrator run migrate

Config fields (apps/migrator/migrator.config.ts)

  • from: postgres or sqlite
  • to: postgres or sqlite
  • source: Postgres connection string or SQLite file path
  • target: Postgres connection string or SQLite file path
  • batchSize: optional batch size (default: 500)

Examples

Update `apps/migrator/migrator.config.ts` and run:

```bash
bun --cwd apps/migrator run migrate

```bash
Update `apps/migrator/migrator.config.ts` and run:

```bash
bun --cwd apps/migrator run migrate

## Notes

- IDs are copied as-is to preserve relationships.
- For Postgres targets, sequences may need manual reset after import.