Skip to main content
Version: 2.0.x

Bootstrap Project

Install cli tools

First, install our cli tools with cargo.

cargo install sea-orm-cli@^2.0.0-rc
cargo install seaography-cli@^2.0.0-rc

Config database url

Set DATABASE_URL in your environment to your database connection.

export DATABASE_URL=protocol://username:password@localhost/database

Here are some tips for database specific options:

MySQL

mysql://username:password@host/database

Postgres

Specify a schema

postgres://username:password@host/database?currentSchema=my_schema

SQLite

In memory

sqlite::memory:

Create file if not exists

sqlite://path/to/db.sqlite?mode=rwc

Read only

sqlite://path/to/db.sqlite?mode=ro

Generate SeaORM Entities

sea-orm-cli generate entity -o src/entities --seaography

You will see something like:

Writing src/entities/actor.rs
Writing src/entities/address.rs
Writing src/entities/category.rs
Writing src/entities/city.rs
Writing src/entities/country.rs
Writing src/entities/customer.rs
Writing src/entities/film.rs
Writing src/entities/film_actor.rs
Writing src/entities/film_category.rs
Writing src/entities/inventory.rs
Writing src/entities/language.rs
Writing src/entities/payment.rs
Writing src/entities/rental.rs
Writing src/entities/staff.rs
Writing src/entities/store.rs
Writing src/entities/mod.rs
Writing src/entities/prelude.rs
Writing src/entities/sea_orm_active_enums.rs
... Done.

Generate Seaography Project

seaography-cli -o . -e src/entities --framework axum my-seaography-project

You can choose between actix, poem, axum as the web framework. The generated project will have a crate named my-seaography-project.

CLI options

🧭 A dynamic GraphQL framework for SeaORM

Usage: seaography-cli [OPTIONS] --entities <ENTITIES> --database-url <DATABASE_URL> <CRATE_NAME>

Arguments:
<CRATE_NAME> Crate name for generated project

Options:
-o, --output-dir <OUTPUT_DIR>
Project output directory [default: ./]
-e, --entities <ENTITIES>
Entities directory
-u, --database-url <DATABASE_URL>
Database URL [env: DATABASE_URL]
-f, --framework <FRAMEWORK>
Which web framework to use [default: poem] [possible values: actix, poem, axum]
--depth-limit <DEPTH_LIMIT>
GraphQL depth limit
--complexity-limit <COMPLEXITY_LIMIT>
GraphQL complexity limit
-h, --help
Print help
-V, --version
Print version

Launch!

cargo build

You should see something like:

   Compiling seaography v2.0.0-rc.2
Compiling seaography-postgres-example v0.1.0 (/Users/chris/seaography/examples/postgres)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 28.24s

If the build succeeds, then you can launch it:

cargo run

You should see something like:

Visit GraphQL Playground at http://localhost:8000