# @packages/migrator Database migration tool for moving data between PostgreSQL and SQLite. ## Setup Install dependencies: ```bash npm install ``` ## Configuration Edit `src/config.ts` directly to configure database settings: ```typescript // PostgreSQL Configuration export const postgresConfig = { connectionString: 'postgresql://postgres:postgres@localhost:5432/freshyo', ssl: false, }; // SQLite Configuration export const sqliteConfig = { filename: './data/migrated.db', }; // Migration Settings export const migrationConfig = { batchSize: 1000, // Rows per batch truncateBeforeInsert: true, // Clear tables before migration excludedTables: [], // Tables to skip includedTables: [], // Tables to include (empty = all) }; // Logging export const logConfig = { verbose: true, logFile: './migration.log', }; ``` ## Usage ### PostgreSQL to SQLite Migrate data from PostgreSQL to SQLite: ```bash npm run migrate:pg-to-sqlite ``` ### SQLite to PostgreSQL Migrate data from SQLite to PostgreSQL: ```bash npm run migrate:sqlite-to-pg ``` ### Full Cycle (Testing) Run both migrations in sequence: ```bash npm run migrate:full-cycle ``` ## Features - ✅ Automatic schema conversion between PostgreSQL and SQLite - ✅ Batch processing for large datasets - ✅ Type mapping between databases - ✅ JSON/array handling - ✅ Configurable table filtering - ✅ Progress logging - ✅ Transaction support ## Notes - Arrays and JSON data are stored as TEXT in SQLite and parsed back when migrating to PostgreSQL - Date/timestamps are stored as ISO strings in SQLite - Foreign key constraints are enabled in SQLite - Edit `src/config.ts` to change any settings