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.1.2.tar.gz (25.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.1.2-py3-none-any.whl (17.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: amplify_excel_migrator-1.1.2.tar.gz
  • Upload date:
  • Size: 25.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.1.2.tar.gz
Algorithm Hash digest
SHA256 9f6700a7cc339a94d8037ad8d80b543ac7230e9d65258ec7bacec322d182e7bc
MD5 b5106d9bfca31f05b3c6b35c8281cae7
BLAKE2b-256 26c6f9a04ee2ee3d40ed102d406123165a85f42456f533325977fb0cc8067f0c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for amplify_excel_migrator-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 57693714f192e0c37e839bc3d28229d231bda39d328850af51a05067ac084101
MD5 e5731e0e65dcaf1d25fbd469778d7709
BLAKE2b-256 a8aaf6192541b6fa4afae5ba206e3e5e16b99aaddd7e49a26c9914ea1f9f080a

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