Commands for exporting and uploading table data.
Export table rows from Revisium to JSON files.
revisium rows save --folder <path> [--tables <list>]| Option | Description | Required |
|---|---|---|
-f, --folder <path> |
Output folder for row files | Yes |
-t, --tables <list> |
Comma-separated table IDs | No (all tables) |
--url <url> |
Revisium URL (see URL Format) | No* |
*If --url is not provided, uses REVISIUM_URL environment variable or prompts interactively.
# Export all tables (using REVISIUM_URL from environment)
revisium rows save --folder ./data
# Export specific tables
revisium rows save --folder ./data --tables users,posts
# Export with explicit URL and token
revisium rows save --folder ./data \
--url revisium://cloud.revisium.io/myorg/myproject/master?token=$TOKEN
# Export from head revision
revisium rows save --folder ./data \
--url revisium://cloud.revisium.io/myorg/myproject/master:head?token=$TOKENCreates a folder structure with one JSON file per row:
data/
├── users/
│ ├── user-1.json
│ └── user-2.json
└── posts/
├── post-1.json
└── post-2.json
Each file contains the row data:
{
"name": "John Doe",
"email": "[email protected]"
}Upload table rows from JSON files to Revisium.
revisium rows upload --folder <path> [options]| Option | Description | Default |
|---|---|---|
-f, --folder <path> |
Folder with row files | Required |
-t, --tables <list> |
Comma-separated table IDs | All tables |
--batch-size <n> |
Rows per batch | 100 |
-c, --commit |
Create revision after upload | false |
--url <url> |
Revisium URL (see URL Format) | Environment |
# Basic upload (using REVISIUM_URL from environment)
revisium rows upload --folder ./data
# Upload specific tables
revisium rows upload --folder ./data --tables users,posts
# Upload with larger batch size
revisium rows upload --folder ./data --batch-size 500
# Upload and create revision
revisium rows upload --folder ./data --commit
# Upload with explicit URL and token
revisium rows upload --folder ./data --commit \
--url revisium://cloud.revisium.io/myorg/myproject/master?token=$TOKEN
# Upload with credentials via environment variables
export REVISIUM_USERNAME=admin
export REVISIUM_PASSWORD=secret
revisium rows upload --folder ./data --commit \
--url revisium://cloud.revisium.io/myorg/myproject/masterThe upload command compares local files with API data:
- Create - New rows that don't exist in API
- Update - Rows with changed data
- Skip - Identical rows (no changes)
Uses batch API for efficient uploads:
- Configurable batch size (default: 100)
- Automatic fallback to single-row operations for older APIs
- Real-time progress indicator
Tables are automatically sorted based on foreign key relationships:
# Given these dependencies:
# users → posts (users references posts)
# posts → images (posts references images)
# Upload order will be:
# 1. images
# 2. posts
# 3. users
If two tables reference each other (e.g., users ↔ posts):
- CLI logs warnings about circular dependencies
- Suggests uploading in multiple passes
- Continues with upload (foreign key errors may occur)
# Option 1: Upload without foreign key values first
# Edit files to remove circular references
revisium rows upload --folder ./data --commit
# Option 2: Upload in multiple passes
revisium rows upload --folder ./data --tables images,posts
revisium rows upload --folder ./data --tables users --commit# Export from source
revisium rows save --folder ./data \
--url revisium://source.example.com/myorg/myproject/master:head?token=$SOURCE_TOKEN
# Import to target
revisium rows upload --folder ./data --commit \
--url revisium://target.example.com/myorg/myproject/master?token=$TARGET_TOKEN# Edit local JSON files
# Then upload changes (using REVISIUM_URL from environment)
revisium rows upload --folder ./data --commitSee URL Format for complete URL syntax and Authentication for auth options.