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.

101 lines (100 loc) 2.78 kB
export interface ComprehensiveTransferOptions { sourceEndpoint: string; sourceProject: string; sourceKey: string; targetEndpoint: string; targetProject: string; targetKey: string; transferUsers?: boolean; transferDatabases?: boolean; transferBuckets?: boolean; transferFunctions?: boolean; concurrencyLimit?: number; dryRun?: boolean; } export interface TransferResults { users: { transferred: number; skipped: number; failed: number; }; databases: { transferred: number; skipped: number; failed: number; }; buckets: { transferred: number; skipped: number; failed: number; }; functions: { transferred: number; skipped: number; failed: number; }; totalTime: number; } export declare class ComprehensiveTransfer { private options; private sourceClient; private targetClient; private sourceUsers; private targetUsers; private sourceDatabases; private targetDatabases; private sourceStorage; private targetStorage; private sourceFunctions; private targetFunctions; private limit; private userLimit; private fileLimit; private results; private startTime; private tempDir; private cachedMaxFileSize?; constructor(options: ComprehensiveTransferOptions); execute(): Promise<TransferResults>; private transferAllUsers; private transferAllDatabases; /** * Phase 1: Create database structure (collections, attributes, indexes) without transferring documents */ private createDatabaseStructure; /** * Phase 2: Transfer documents to all collections in the database */ private transferDatabaseDocuments; private transferAllBuckets; private createBucketWithFallback; private transferBucketFiles; private validateAndDownloadFile; private transferAllFunctions; private downloadFunction; /** * Helper method to fetch all collections from a database */ private fetchAllCollections; /** * Helper method to fetch all buckets with pagination */ private fetchAllBuckets; /** * Helper method to parse attribute objects (simplified version of parseAttribute) */ private parseAttribute; /** * Helper method to create collection attributes with status checking */ private createCollectionAttributesWithStatusCheck; /** * Helper method to create collection indexes with status checking */ private createCollectionIndexesWithStatusCheck; /** * Helper method to transfer documents between databases */ private transferDocumentsBetweenDatabases; private printSummary; }