Polykomos provisions real PostgreSQL and MySQL databases — not serverless emulations, not compatibility layers. You get a standard connection string that works with any framework, ORM, or language that speaks either protocol.
No server management, no capacity planning, no patching. Create a database in seconds, connect with the tools you already use, and let Polykomos handle the infrastructure.
Instant provisioning — Databases are ready in under a second thanks to a pre-provisioned pool.
PostgreSQL and MySQL — Choose the engine that fits your project. Full SQL support, extensions, transactions, triggers — everything you'd expect.
Any framework — Laravel, Django, Rails, Express, Spring, Phoenix — if it supports PostgreSQL or MySQL, it works.
Standard connection strings — postgresql:// or mysql:// URIs. No proprietary SDKs or custom drivers.
How provisioning works
Behind the scenes, Polykomos maintains a pool of pre-provisioned databases for both PostgreSQL and MySQL. When you create a database — whether from the dashboard or the API — you're assigned one from the pool instantly. No cold starts, no waiting for servers to spin up.
1
You request a database — one API call or one click in the dashboard.
2
Polykomos assigns a pre-provisioned instance from the pool, creates your credentials, and sets permissions.
3
You get a connection string — postgresql:// or mysql:// depending on the engine you chose — and you're live.
The pool replenishes automatically in the background, so there are always databases ready to go.
CI/CD pipeline databases
Every test run deserves its own database. No shared state between runs, no flaky tests caused by leftover data, no cleanup scripts. Provision a fresh database at the start of your pipeline and tear it down when you're done.
Example
GitHub Actions integration test workflow
Your CI workflow provisions a Polykomos database, runs migrations against it, executes your test suite, then deletes the database. Each run is completely isolated. No Docker Compose, no test containers, no local database setup.
# In your GitHub Actions workflow:
- name: Create test database
run: |
DB_RESPONSE=$(curl -sS -X POST "https://polykomos.com/api/v1/databases?wait=true" \
-H "Authorization: Bearer ${{ secrets.POLYKOMOS_API_KEY }}" \
-H "Idempotency-Key: ${{ github.run_id }}" \
-H "Content-Type: application/json" \
-d '{"name": "ci-run-${{ github.run_number }}"}')
echo "DATABASE_URL=$(echo $DB_RESPONSE | jq -r '.data.connection_string')" >> $GITHUB_ENV
- name: Run migrations
run: npx prisma migrate deploy
- name: Run tests
run: npm test
Website and app databases
Connect your web application to a Polykomos database using your framework's standard database configuration. No special drivers or adapters — just a connection string for PostgreSQL or MySQL.
// PostgreSQL
DATABASE_URL="postgresql://your_username:your_password@your-host.polykomos.com:5432/your_database_name"
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
// MySQL
DATABASE_URL="mysql://your_username:your_password@your-host.polykomos.com:3306/your_database_name"
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
}
Your framework's migrations, seeders, and ORM work exactly as they do with any other PostgreSQL or MySQL host.
Serverless functions
Serverless functions on AWS Lambda, Vercel, or Cloudflare Workers can connect to Polykomos databases using a standard DATABASE_URL environment variable. No VPC configuration, no connection pooler setup.
Example
Vercel serverless function
Set DATABASE_URL in your Vercel project settings, and your serverless functions connect directly. Works with Prisma, Drizzle, Knex, pg, mysql2 — whatever you prefer.
// api/users.ts — Vercel serverless function
import { Pool } from "pg";
const pool = new Pool({
connectionString: process.env.DATABASE_URL,
max: 1, // one connection per function instance
});
export default async function handler(req, res) {
const { rows } = await pool.query("SELECT id, name, email FROM users LIMIT 50");
res.json({ users: rows });
}
For high-concurrency serverless workloads, Polykomos handles connection management so individual functions don't exhaust the connection pool.
Development environments
Give every developer on your team their own database instance. No shared dev databases, no conflicting migrations, no "who dropped the users table?" incidents.
Workflow
One database per developer
Each developer creates their own Polykomos database from the dashboard or CLI. They run migrations against it independently, experiment freely, and reset when needed. When they push to CI, a fresh database is provisioned for testing — completely separate from their dev instance.
# Quick setup for a new team member
$ curl -sS -X POST "https://polykomos.com/api/v1/databases?wait=true" \
-H "Authorization: Bearer $POLYKOMOS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "dev-sarah"}'
# Copy the connection string to your .env (PostgreSQL or MySQL — depends on what you chose)
DATABASE_URL=postgresql://dev_sarah_user:...@host.polykomos.com:5432/dev_sarah_db
Staging and preview environments
Preview deployments (Vercel, Netlify, Render) are great for reviewing frontend changes, but they usually share a staging database — which means conflicting data and broken previews.
With Polykomos, each preview deployment gets its own database. Provision it in your deploy hook, seed it with test data, and delete it when the PR is merged.
Pattern
Ephemeral databases for preview deploys
Your deploy hook calls the Polykomos API to create a database named after the PR number: preview-pr-142. Migrations run automatically. The preview app connects to its own isolated database. When the PR is closed, a cleanup webhook deletes the database.
This gives reviewers confidence that what they see in the preview is exactly what will happen in production — because the database state is clean and predictable.
Getting started
Four steps to a working database:
1
Sign up for a Polykomos account. Free tier includes one database.
2
Create a database from the dashboard or via the API.
3
Copy the connection string from the database detail page.
4
Connect your app — paste the connection string into your framework's config or environment variables.
Connection examples
Standard connections in every major language. Examples below show both PostgreSQL and MySQL:
# PostgreSQL
$ psql "postgresql://your_user:your_pass@your-host.polykomos.com:5432/your_db"
# MySQL
$ mysql -h your-host.polykomos.com -P 3306 -u your_user -p your_db