Skip to main content

A CLI tool to migrate Excel data to AWS Amplify

Project description

Amplify Excel Migrator

A CLI tool to migrate data from Excel files to AWS Amplify GraphQL API. Developed for the MECO project - https://github.com/sworgkh/meco-observations-amplify

Installation

From PyPI (Recommended)

Install the latest stable version from PyPI:

pip install amplify-excel-migrator

From GitHub

Install directly from GitHub:

pip install git+https://github.com/EyalPoly/amplify-excel-migrator.git

From Source

Clone the repository and install:

git clone https://github.com/EyalPoly/amplify-excel-migrator.git
cd amplify-excel-migrator
pip install .

For Development

Install with development dependencies:

pip install -e ".[dev]"

This installs the package in editable mode with pytest and other development tools.

Usage

The tool has three subcommands:

1. Configure (First Time Setup)

Save your AWS Amplify configuration:

amplify-migrator config

This will prompt you for:

  • Excel file path
  • AWS Amplify API endpoint
  • AWS Region
  • Cognito User Pool ID
  • Cognito Client ID
  • Admin username

Configuration is saved to ~/.amplify-migrator/config.json (passwords are never saved).

2. Show Configuration

View your current saved configuration:

amplify-migrator show

3. Run Migration

Run the migration using your saved configuration:

amplify-migrator migrate

You'll only be prompted for your password (for security, passwords are never cached).

Quick Start

# First time: configure the tool
amplify-migrator config

# View current configuration
amplify-migrator show

# Run migration (uses saved config)
amplify-migrator migrate

# View help
amplify-migrator --help

Example: Configuration

╔════════════════════════════════════════════════════╗
║        Amplify Migrator - Configuration Setup      ║
╚════════════════════════════════════════════════════╝

📋 Configuration Setup:
------------------------------------------------------
Excel file path [data.xlsx]: my-data.xlsx
AWS Amplify API endpoint: https://xxx.appsync-api.us-east-1.amazonaws.com/graphql
AWS Region [us-east-1]:
Cognito User Pool ID: us-east-1_xxxxx
Cognito Client ID: your-client-id
Admin Username: admin@example.com

✅ Configuration saved successfully!
💡 You can now run 'amplify-migrator migrate' to start the migration.

Example: Migration

╔════════════════════════════════════════════════════╗
║             Migrator Tool for Amplify              ║
╠════════════════════════════════════════════════════╣
║   This tool requires admin privileges to execute   ║
╚════════════════════════════════════════════════════╝

🔐 Authentication:
------------------------------------------------------
Admin Password: ********

Requirements

  • Python 3.8+
  • AWS Amplify GraphQL API
  • AWS Cognito User Pool
  • Admin access to the Cognito User Pool

Features

  • Configuration caching - Save your setup, reuse it for multiple migrations
  • Interactive prompts - Easy step-by-step configuration
  • Custom types and enums - Full support for Amplify custom types
  • Duplicate detection - Automatically skips existing records
  • Async uploads - Fast parallel uploads for better performance
  • MFA support - Works with multi-factor authentication
  • Automatic type parsing - Smart field type detection and conversion

Excel File Format

The Excel file should have:

  • One sheet per Amplify model (sheet name must match model name)
  • Column names matching the model field names
  • First row as headers

Example Excel Structure

Sheet: User

name email age
John john@example.com 30
Jane jane@example.com 25

Sheet: Post

title content userId
First Post Hello World john@example.com

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

amplify_excel_migrator-1.0.2.tar.gz (23.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

amplify_excel_migrator-1.0.2-py3-none-any.whl (16.1 kB view details)

Uploaded Python 3

File details

Details for the file amplify_excel_migrator-1.0.2.tar.gz.

File metadata

  • Download URL: amplify_excel_migrator-1.0.2.tar.gz
  • Upload date:
  • Size: 23.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for amplify_excel_migrator-1.0.2.tar.gz
Algorithm Hash digest
SHA256 7243af83925cd24e5d3b2337d56badfc0421b00e2b772d4db94d36311e8397cf
MD5 e8d06ab451b81341355310b0a728bea0
BLAKE2b-256 2198029c12f563780e32e24d1c4aa9c8e3b6fef0e4ea2332654dd9e4417d116e

See more details on using hashes here.

File details

Details for the file amplify_excel_migrator-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for amplify_excel_migrator-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2694aa7a2f4f3388d09027d7f06c9837445aa4598892778aa75a94dba8a2fd9e
MD5 c56064673303d9095def2692f1928460
BLAKE2b-256 92c22da6b292ad8234f4ef44dcf75e65c519b72021b18fbb7e11f650f0b3a11e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page