./setup.sh # installs backend + frontend deps
cp .env.example .env
./start.sh # backend :5001, frontend :3000
Raptor (the backend_v2 Flask app) is migrating from SQLite to Postgres as
part of the v1 launch milestone. Postgres is optional for local development.
The database layer falls back to SQLite automatically when DATABASE_URL is
not set.
DATABASE_URL set)DATABASE_URL=sqlite+pysqlite:///./dev.db
This is the implicit default. You do not need to export the variable — if it
is absent, Raptor creates dev.db in the project root and applies all SQLite
migrations. No Postgres server required.
If you want to test against Postgres locally, install Postgres, create a database, and export:
DATABASE_URL=postgresql://localhost/raptor_dev
Then apply the Alembic baseline migration:
cd backend_v2
alembic upgrade head
DATABASE_URL=sqlite+pysqlite:///./test.db
This form is used by some test fixtures to isolate test state from dev.db.
psycopg2-binary ships ARM wheels for >=2.9 (the pinned floor). If you
encounter a build failure on ARM, install the non-binary package with system
libpq instead:
brew install libpq
pip install psycopg2
| Command | Effect |
|---|---|
alembic upgrade head |
Apply all pending migrations |
alembic downgrade base |
Roll back all migrations (drops all tables) |
alembic current |
Show the current applied revision |
alembic history |
List all revisions |
Run these from backend_v2/ where alembic.ini lives.
Staging / prod cutover:
DATABASE_URLon Heroku is set viaheroku config:set(append>/dev/null 2>&1to avoid echoing the URL to logs). The release dyno runsalembic upgrade headautomatically. No Postgres URL ever appears in committed source files.