Database Configuration
Flowra uses Knex under the hood. Database configuration lives in app/Config/Database.js and is consumed by the DatabaseManager.
Default configuration
app/Config/Database.js
module.exports = {
default: 'default',
connections: {
default: {
client: 'mysql2',
connection: {
host: process.env.DB_MYSQL_HOST_PRIMARY || process.env.DB_MYSQL_HOST || '127.0.0.1',
user: process.env.DB_DEFAULT_USERNAME || 'root',
password: process.env.DB_DEFAULT_PASSWORD || '',
database: process.env.DB_DEFAULT_DATABASE || 'flowra',
port: parseInt(process.env.DB_MYSQL_PORT_PRIMARY || process.env.DB_MYSQL_PORT, 10),
},
},
defaultRead: {
client: 'mysql2',
connection: {
host: process.env.DB_MYSQL_HOST_READONLY || process.env.DB_MYSQL_HOST || '127.0.0.1',
user: process.env.DB_DEFAULT_USERNAME || 'root',
password: process.env.DB_DEFAULT_PASSWORD || '',
database: process.env.DB_DEFAULT_DATABASE || 'flowra',
},
},
},
};
Connection aliases
defaultis the primary connection.defaultReadis used for read operations when available.
Services and models can choose the connection alias via the Service base class.
CLI configuration
orm.cli.config.js reads your database config and maps it to Knex CLI commands. You can override connection names with environment variables like KNEX_CONNECTION.
Switching databases
To use PostgreSQL or another database, update the connection client and connection values in app/Config/Database.js. Everything else in Flowra remains the same.
Keep config in one place
Flowra reads from app/Config/Database.js for runtime and from orm.cli.config.js for CLI migrations, so you only maintain one source of truth.