Skip to content

Data transfer

Data transfer copies tables, views, procedures and functions from one database to another — including between different engines. MySQL to PostgreSQL, SQLite to SQL Server, production to a local copy.

Open it from Tools → Data Transfer, or right-click a database and choose Data Transfer.

The wizard

1. Source and target

Pick a connection and database on each side. NabuSQL shows the connection type, name, host, port and server version for both, so you can confirm you are pointed where you think you are.

2. Select objects

The object tree groups everything into Tables, Views and Functions / Procedures. Tick what you want to move.

Highlight a single table to configure it individually: its target object name, and its modeAuto (structure and records) or DDL only (structure, no data).

3. Options

Table options

OptionEffect
Create tablesCreate the target tables. Turn off when they already exist
Include indexesRecreate indexes
Include default valuesCarry column defaults over
Include foreign key constraintsRecreate FK constraints
Include engine/table typeMySQL engine, e.g. InnoDB
Include character setCarry the charset over
Include auto incrementKeep auto-increment columns
Include triggersCopy triggers too
Drop target objects before createDrop what is there first

Record options

OptionEffect
Create recordsCopy the rows, not just the structure
Use transactionWrap the transfer so a failure rolls back
Use extended insert statementsMulti-row INSERTs — considerably faster
Continue on errorKeep going past failing rows instead of stopping
Batch sizeRows per batch

Other

  • Create target database if not exists — creates the database when it is missing.

4. Run

Progress is shown per phase — creating schema, then copying — and per object. The result is Transfer complete, Completed with errors with the list, or an error.

Profiles

Save Profile stores the whole configuration — source, target, object selection and options. Load Profile brings it back. Worth doing for any transfer you run more than once, such as refreshing a development database from production.

Cross-engine notes

Moving between engines means types are mapped, not copied. Check the result when the source uses engine-specific types — MySQL ENUM, PostgreSQL arrays, SQL Server UNIQUEIDENTIFIER.

Procedures and functions are copied as source text. SQL dialects differ between engines, so a routine that works on MySQL will often need editing after landing on PostgreSQL. Tables and views are the parts that travel cleanly.

Start with a dry run

For a first transfer between unfamiliar servers, select one table, set DDL only, and run it. You will see how the types map before committing to a full copy.