🚀   Portable does more than just ELT. Explore Our AI Orchestration CapabilitiesÂ
After authenticating to your database server, Portable verifies that the specified database (and schema, for PostgreSQL) exists. If this step fails, you'll see a "Database Not Found" or "Schema Not Found" error in the diagnostic checks.
Portable can connect to your database server, but the specific database or schema you specified doesn't exist. This is usually a configuration issue—either a typo in the name or the database/schema hasn't been created yet.
Different databases use different terminology:
| Database | "Database" Concept | "Schema" Concept |
|---|---|---|
| PostgreSQL | Database (separate data directory) | Schema (namespace within database) |
| MySQL | Database/Schema (interchangeable) | N/A |
| SQL Server | Database | Schema (namespace within database) |
In PostgreSQL, you connect to a database and then access objects within a schema. The default schema is public.
In MySQL, "database" and "schema" mean the same thing.
The most common cause. Names are often case-sensitive.
Common mistakes:
MyDatabase vs mydatabase (case sensitivity)my_database vs my-database (underscore vs hyphen)prod_db vs proddb (missing character)The database may not have been created, or you're pointing to the wrong server.
PostgreSQL - List databases:
SELECT datname FROM pg_database WHERE datistemplate = false;
MySQL - List databases:
SHOW DATABASES;
For PostgreSQL, the database may exist but the schema doesn't.
List schemas:
SELECT schema_name FROM information_schema.schemata;
-- or
\dn -- in psql
You may be connected to the wrong environment (dev vs staging vs prod) where the database doesn't exist.
The database may have been dropped, renamed, or migrated to a different server.
In some configurations, users can't see databases they don't have access to.
PostgreSQL:
-- Check if user can connect to the database
SELECT has_database_privilege('myuser', 'mydb', 'CONNECT');
PostgreSQL:
-- Connect as superuser or user with CREATEDB privilege
CREATE DATABASE mydb;
-- Optionally set owner
CREATE DATABASE mydb OWNER myuser;
MySQL:
CREATE DATABASE mydb;
-- or with character set
CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- Connect to the database first
\c mydb
-- Create schema
CREATE SCHEMA myschema;
-- Optionally set owner
CREATE SCHEMA myschema AUTHORIZATION myuser;
-- Grant access
GRANT USAGE ON SCHEMA myschema TO myuser;
If you don't need a custom schema, you can use the default:
public (or leave the schema field empty in Portable)PostgreSQL:
# List all databases
psql -h db.example.com -U myuser -c "SELECT datname FROM pg_database;"
# Try connecting to specific database
psql -h db.example.com -U myuser -d mydb
MySQL:
# List all databases
mysql -h db.example.com -u myuser -p -e "SHOW DATABASES;"
# Try connecting to specific database
mysql -h db.example.com -u myuser -p mydb
# Connect to database and list schemas
psql -h db.example.com -U myuser -d mydb -c "SELECT schema_name FROM information_schema.schemata;"
-- PostgreSQL: Check exact database name
SELECT datname FROM pg_database WHERE lower(datname) = lower('MyDatabase');
-- PostgreSQL: Check exact schema name
SELECT schema_name FROM information_schema.schemata WHERE lower(schema_name) = lower('MySchema');
-- MySQL: Check exact database name
SELECT schema_name FROM information_schema.schemata WHERE lower(schema_name) = lower('MyDatabase');
CREATE DATABASE mydb;
postgres (PostgreSQL) or the name you specifiedCREATE DATABASE mydb;
DATABASE_URL)d1234abcdFor PostgreSQL, consider your schema strategy:
Option 1: Use the public schema (simplest)
publicOption 2: Custom schema per application
-- Create dedicated schema
CREATE SCHEMA portable_data;
GRANT ALL ON SCHEMA portable_data TO myuser;
-- Set as default for user (optional)
ALTER USER myuser SET search_path TO portable_data, public;
Option 3: Let Portable create the schema
Before contacting support, verify:
SHOW DATABASES or check pg_database)\dn or check information_schema.schemata)If the database exists but Portable still reports an error, contact support with: