UNPKG

appwrite-utils-cli

Version:

Appwrite Utility Functions to help with database management, data conversion, data import, migrations, and much more. Meant to be used as a CLI tool, I do not recommend installing this in frontend environments.

88 lines (87 loc) 2.69 kB
import { type AppwriteConfig, type CollectionCreate, type TableCreate, type TableCreateInput } from "appwrite-utils"; import { type ValidationResult } from "./configValidation.js"; /** * Migration strategy types */ export type MigrationStrategy = "full_migration" | "dual_format" | "incremental" | "tables_only"; /** * Migration plan detailing what will be changed */ export interface MigrationPlan { strategy: MigrationStrategy; collectionsToMigrate: CollectionMigrationItem[]; collectionsToKeep: CollectionCreate[]; tablesToCreate: TableCreate[]; expectedChanges: MigrationChange[]; estimatedComplexity: "low" | "medium" | "high"; warnings: string[]; recommendations: string[]; } /** * Individual collection migration details */ export interface CollectionMigrationItem { collection: CollectionCreate; index: number; newTable: TableCreate; changes: string[]; warnings: string[]; } /** * Migration change description */ export interface MigrationChange { type: "add" | "remove" | "modify" | "rename"; description: string; impact: "low" | "medium" | "high"; location: string; } /** * Migration execution result */ export interface MigrationResult { success: boolean; newConfig: AppwriteConfig; changes: MigrationChange[]; validation: ValidationResult; warnings: string[]; errors: string[]; } /** * Migration options */ export interface MigrationOptions { preserveOriginal?: boolean; validateResult?: boolean; dryRun?: boolean; backupConfig?: boolean; targetDirectory?: string; } /** * Creates a migration plan for converting collections to tables */ export declare function createMigrationPlan(config: AppwriteConfig, strategy?: MigrationStrategy, specificCollections?: string[]): MigrationPlan; /** * Executes a migration plan */ export declare function executeMigrationPlan(config: AppwriteConfig, plan: MigrationPlan, options?: MigrationOptions): MigrationResult; /** * Converts a single collection to table format */ export declare function convertCollectionToTable(collection: CollectionCreate): TableCreateInput; /** * Utility function to migrate collections to tables with simple interface */ export declare function migrateCollectionsToTables(config: AppwriteConfig, options?: { strategy?: MigrationStrategy; specificCollections?: string[]; validateResult?: boolean; dryRun?: boolean; }): MigrationResult; /** * Saves migration results to files */ export declare function saveMigrationResult(result: MigrationResult, outputPath: string, options?: { createBackup?: boolean; originalConfigPath?: string; }): Promise<void>;