Schema Selection Guide
Use this page to decide how much of a database a stream should read.
It explains the two main patterns:
- auto-discovery for database sources
- explicit table selection when you need tighter control
For source, target, and mode boundaries, see the Stream Configuration Guide.
The selection model
Schema selection applies to database-backed stream sources such as MySQL and PostgreSQL.
For file sources, S3-compatible storage, or federated SQL workflows, the scope is driven by files, paths, or query definitions instead of database schemas.
Auto-discovery
When you create a database-based stream with no explicit table list, DBConvert Streams can discover the visible tables from the source connection and use that result as the initial scope.
Use auto-discovery when:
- you want a broad first pass over the source
- you trust the connection user's visibility rules
- you plan to confirm the result in the UI before running the stream
Via API, simply omit the tables field — the backend discovers visible tables automatically:
{
"name": "full-source-pass",
"mode": "load",
"source": {
"connections": [
{
"connectionId": "conn_SOURCE_ID",
"database": "app_db"
}
]
},
"target": {
"id": "conn_TARGET_ID",
"spec": { "db": { "database": "warehouse" } }
}
}
Always inspect the discovered result in the UI before assuming it matches business scope.
Explicit table selection
Use an explicit tables list when:
- only part of the source should be moved
- only specific schemas should be included
- the stream must stay stable even if new tables appear later
- you need per-table custom queries in Load workflows
- the source contains multiple business domains and the connection user can see more tables than the stream should process
{
"name": "selected-tables",
"mode": "load",
"source": {
"connections": [
{
"connectionId": "conn_SOURCE_ID",
"database": "app_db",
"schema": "public",
"tables": [
{ "name": "products" },
{ "name": "orders" },
{ "name": "users" }
]
}
]
},
"target": {
"id": "conn_TARGET_ID",
"spec": { "db": { "database": "warehouse" } }
}
}
Naming behavior by database type
PostgreSQL
- schemas matter
- table names are commonly written as
schema.table - the default schema is usually
public
MySQL
- the stream is usually scoped to the connected database
- table names are typically unqualified inside that connection scope
Recommended validation flow
- Create or test the source connection.
- Open it in Data Explorer to confirm what the platform can see.
- Use SQL Console for spot checks.
- Create the stream with auto-discovery or an explicit table list.
- Re-open the saved stream configuration and confirm the final scope before starting it.
- After the first run, verify the stream reached finished and the transferred row counts match expectations.