Skip to main content

simple-transfer

Easy data transfers between relational databases. Specify the source/destination connection, schema, and table and simple-transfer does the rest.

Quickstart

import logging

from simple_transfer import MySQLConnection, Pipeline, PostgreSQLConnection

logging.basicConfig(level=logging.INFO)


source_connection = PostgreSQLConnection(
    host="source-database.xxx.us-east-1.rds.amazonaws.com",
    port=5432,
    username="<username>",
    password="<password>",
    db="postgres",
)

destination_connection = MySQLConnection(
    host="destination-database.xxx.us-east-1.rds.amazonaws.com",
    port=3306,
    username="<username>",
    password="<password>",
    db="my_db",
)

pipeline = Pipeline(
    source_connection=source_connection,
    source_schema="public",
    source_table="source_table",
    destination_connection=destination_connection,
    destination_schema="my_db",
    destination_table="destination_table",
    inject_mode="swap",
)
pipeline.execute()

Supported Databases

  • PostgreSQL
  • MySQL

Supported temporary storage locations

This package utilizes the smart_open package when opening a file object, this enables the intermediate storage location to be anything supported by this library:

  • Local File System
  • AWS S3
  • Azure Blob Storage
  • GCP Cloud Storage

Injection Methods

overwrite

This mode will drop and recreate the table if it exists before inserting the data into it.

append

This mode will create the table if it doesn't exist, and then insert the data into it.

swap

This mode will create a swap table and insert the data into it. Then in a transaction it will swap the names of the swap table and existing table and then drop the now renamed existing table.

Metadata

Release files for simple-transfer 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for simple-transfer 0.1.1
File Size Uploaded
simple-transfer-0.1.1.tar.gz 21.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for simple-transfer 0.1.1
File Interpreter ABI Platform
simple_transfer-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 46.6 kB

Release files / simple-transfer-0.1.1.tar.gz

Download URL simple-transfer-0.1.1.tar.gz
Size 21.2 kB
Tags Source
SHA-256 checksum
How to use checksums
9663c17f850fbbac8cf372904e7902778ab6a516e69543231d549752e373fbae
BLAKE2b-256 checksum
How to use checksums
36b1d626a6ba8efa43524ffccf7f4dd76796f08a92270deafbf9de699fe4d8ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.8.10

Release files / simple_transfer-0.1.1-py3-none-any.whl

Download URL simple_transfer-0.1.1-py3-none-any.whl
Size 25.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4463b163d20ea9eb5543a2100915857935f2c885a1fd102df2d47cd7c1619664
BLAKE2b-256 checksum
How to use checksums
c8a61820d62b6785630fd3e4172c6ca3b6c4443a8bb298eecb876f59634df480
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.8.10

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page