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 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 | 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file amplify_excel_migrator-1.0.0.tar.gz.
File metadata
- Download URL: amplify_excel_migrator-1.0.0.tar.gz
- Upload date:
- Size: 19.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
12884054b8475d790fabaa1262e5e3cea6c41317729c8b9ae841fde5b54df26e
|
|
| MD5 |
468284f4e2ff0916e5d3e2b76936b179
|
|
| BLAKE2b-256 |
eb051aed26b224444e96ea643fd000ecd828e707a8cb8750e6e2499b33cf5428
|
File details
Details for the file amplify_excel_migrator-1.0.0-py3-none-any.whl.
File metadata
- Download URL: amplify_excel_migrator-1.0.0-py3-none-any.whl
- Upload date:
- Size: 14.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
65201b8157986f7d9f8789a7b4286f5dff4b8013599c09bde60fc9b54290ae52
|
|
| MD5 |
50a4750bfdfa58935877a4e2b7cf91c6
|
|
| BLAKE2b-256 |
1639c5d0abd3a71267f489c9e2ff2ee95a8b0756126dd63e8b20b242cfbeed44
|