PostgreSQL for your FastAPI app, with SQLAlchemy
PostgreSQL for your FastAPI app, created by your coding agent or two commands, backed up from the first minute.
Ask your agent
Create a PostgreSQL database for this FastAPI app on Rowsafe Cloud and connect SQLAlchemy with DATABASE_URL in .env.Your agent picks a size, tells you the price and waits for your yes. Then it creates the server as you and, once it's ready (5 to 10 minutes), puts DATABASE_URL in .env. Through the Claude Code or Codex plugin, you create the login in the dashboard instead and paste it in: the password is made in your browser.
First time? Connect Rowsafe to your agent once.
Or from the terminal
rowsafe cloud create shop-db --wait
rowsafe env --on shop-dbrowsafe cloud create shows the price and asks first. rowsafe env makes the password on your computer, writes DATABASE_URL to .env and adds .env to .gitignore. Rowsafe never sees it.
Connect your app
# pip install sqlalchemy "psycopg[binary]" certifi python-dotenv
import os
import certifi
from dotenv import load_dotenv
from sqlalchemy import create_engine
from sqlalchemy.orm import Session
load_dotenv() # reads DATABASE_URL from .env
url = os.environ["DATABASE_URL"].replace("postgresql://", "postgresql+psycopg://", 1)
engine = create_engine(
url,
pool_pre_ping=True,
# Check the server's certificate against Mozilla's list of trusted authorities.
connect_args={"sslmode": "verify-full", "sslrootcert": certifi.where()},
)
def get_db():
with Session(engine) as session:
yield sessionUse it in a route with db: Session = Depends(get_db). Alembic takes the same URL.
Backups and restores
Rowsafe backs up every change, encrypted on the server with a key only you have, so you can restore to any second. Every week it restores a backup to prove it works. Restore a copy, bring back deleted rows or rewind the whole database, in one click. Before a risky change, save a Mark (rowsafe mark), or let your agent save one.
From $0.014 an hour, never more than $10 a month.
Questions
How does my app's server connect?
At first only your computer can. Add your server's address under Who can connect on the server's page, or run rowsafe cloud allow shop-db ADDRESS.
Can I move my data from Supabase, Neon, RDS or Heroku?
Yes, with Move in: it copies your database while your app keeps running (from Heroku, writes pause during the copy). How it works
More guides
- Add PostgreSQL to your Next.js appNext.js, node-postgres
- Managed MySQL for your Laravel appLaravel, MySQL 8.4
- Managed PostgreSQL for your Django appDjango, psycopg
- Managed PostgreSQL for your Rails appRuby on Rails, pg
- PostgreSQL for your Express app, with PrismaNode.js, Express, Prisma
- PostgreSQL with pgvector for your AI apppgvector, any framework
- A Valkey (Redis) cache for your Next.js appNext.js, node-redis
- Meilisearch for your Laravel app, with ScoutLaravel Scout, Meilisearch
- Managed MariaDB for your WordPress siteWordPress, MariaDB 11.8