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
TypeScript
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;
}