When to use MySQL
Use managed MySQL when the application already expects MySQL semantics:
- Laravel, WordPress, or MySQL-first frameworks
- Existing customer schemas that should not be converted to Postgres
- SQL workloads that rely on MySQL-specific behavior
- SaaS templates that ship with MySQL migrations
Use Postgres when you need richer relational features, extensions, or Postgres-native tooling.
Runtime contract
Applications do not need to know where the database runs. Read the injected connection string at boot:
DATABASE_URL=mysql://user:password@host:3306/database MIOSA injects the same variable into:
- sandboxes for development and agent work
- runtime instances for production deployments
- background workers that belong to the project
Provisioning pattern
const project = await miosa.projects.create({
name: "Customer Portal",
data: { mysql: true },
}); For app builders and white-label platforms, create MySQL per customer project when the generated app requires it. Keep schema migrations in the application repo or sandbox workspace so deployments remain repeatable.