--- title: Data Transfer description: Move table data between connections or database engines. --- Data Transfer copies table data from one connection to another. Use it for development, testing, migration, and consolidation workflows. It is not a replacement for a production-grade replication pipeline. ## Use Cases - Copy part of production data into a development environment - Move data between engines such as MySQL, PostgreSQL, SQLite, and SQL Server - Consolidate multiple sources into an analysis database - Prepare reproducible datasets for testing Cross-engine transfer involves type mapping, defaults, constraints, and auto-increment differences. Validate transferred data afterward, and rehearse important migrations in a test environment first. ## Workflow ### Select the Source The source connection is where data is read from. Confirm the account can read the selected tables. ### Select the Target The target connection is where data is written. Confirm write permissions and verify the target environment. ### Choose Tables Transfer all tables or select only the tables you need. For large tables, consider transferring in smaller batches. ### Start Transfer DBX reads rows table by table and writes them to the target database using the selected mode. You can also choose whether target tables should be created. ### Check Results After transfer, inspect row counts, errors, and key fields. ## During Transfer DBX shows: - Current table - Rows transferred - Overall progress - Errors and the table that caused each error If a table fails, the current transfer stops and shows the error. Fix the structure, permission, or constraint issue, then start the transfer again. ## Transfer Options | Option | Details | |---|---| | Create target table | Try to create the target table from the source structure when it does not exist | | Append | Insert data after existing target rows | | Overwrite | Clear the target table before writing source rows | | Upsert | Use key-aware write behavior where the target database path supports it | | Batch size | Control how many rows are written per batch | ## Database Coverage SQL-based transfer is available for MySQL, PostgreSQL, SQLite, SQL Server, Oracle, ClickHouse, DuckDB, DM, and GaussDB. Cross-engine transfers use DBX's type mapping layer, so always verify row counts and important column values after transfer. ## Before You Transfer | Check | Why It Matters | |---|---| | Target environment | Avoid writing to the wrong database | | Table structure | Field names, types, primary keys, and unique constraints affect inserts | | Data volume | Large tables may take longer or hit timeouts | | Constraints | Foreign keys, unique constraints, and NOT NULL fields may fail writes | | Sensitive data | Production data may need masking before copying into lower environments | ## Related Features Import CSV, TSV, JSON, or Excel into a single table. Export a database as SQL for backup or offline migration.