Full Code of SeaQL/sea-orm for AI

master 75b325bd0d1e cached
1524 files
6.3 MB
1.7M tokens
8574 symbols
1 requests
Download .txt
Showing preview only (6,935K chars total). Download the full file or copy to clipboard to get everything.
Repository: SeaQL/sea-orm
Branch: master
Commit: 75b325bd0d1e
Files: 1524
Total size: 6.3 MB

Directory structure:
gitextract_ko6xbeae/

├── .gitattributes
├── .github/
│   ├── .well-known/
│   │   └── funding-manifest-urls
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug-report.md
│   │   ├── config.yml
│   │   └── feature-request.md
│   └── workflows/
│       ├── release-bot.yml
│       └── rust.yml
├── .gitignore
├── .rustfmt.toml
├── .taplo.toml
├── CHANGELOG.md
├── CLAUDE.md
├── COMMUNITY.md
├── CONTRIBUTING.md
├── Cargo.toml
├── DEVELOPMENT.md
├── LICENSE-APACHE
├── LICENSE-MIT
├── README-zh.md
├── README.md
├── VERSIONS.md
├── build-tools/
│   ├── back-async.rs
│   ├── bump.sh
│   ├── clean.sh
│   ├── del-rel-dep.sh
│   ├── docker-compose.yml
│   ├── docker-create.sh
│   ├── make-sync.sh
│   ├── publish.sh
│   ├── readme.sh
│   ├── rustclippy.sh
│   ├── rustfmt.sh
│   └── update-strum-macros.sh
├── changelog/
│   ├── 2.0.0-rc.20.md
│   ├── 2.0.0-rc.21.md
│   ├── 2.0.0-rc.22.md
│   ├── 2.0.0-rc.23.md
│   ├── 2.0.0-rc.24.md
│   ├── 2.0.0-rc.25.md
│   ├── 2.0.0-rc.26.md
│   ├── 2.0.0-rc.27.md
│   ├── 2.0.0-rc.28.md
│   ├── 2.0.0-rc.29.md
│   ├── 2.0.0-rc.30.md
│   ├── 2.0.0-rc.31.md
│   ├── 2.0.0-rc.32.md
│   ├── 2.0.0-rc.34.md
│   ├── 2.0.0-rc.35.md
│   ├── 2.0.0-rc.36.md
│   └── 2.0.0-rc.37.md
├── examples/
│   ├── actix_example/
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   ├── api/
│   │   │   ├── Cargo.toml
│   │   │   ├── src/
│   │   │   │   ├── lib.rs
│   │   │   │   └── service/
│   │   │   │       ├── mod.rs
│   │   │   │       ├── mutation.rs
│   │   │   │       └── query.rs
│   │   │   ├── static/
│   │   │   │   └── css/
│   │   │   │       ├── normalize.css
│   │   │   │       ├── skeleton.css
│   │   │   │       └── style.css
│   │   │   ├── templates/
│   │   │   │   ├── edit.html.tera
│   │   │   │   ├── error/
│   │   │   │   │   └── 404.html.tera
│   │   │   │   ├── index.html.tera
│   │   │   │   ├── layout.html.tera
│   │   │   │   └── new.html.tera
│   │   │   └── tests/
│   │   │       └── crud_tests.rs
│   │   ├── entity/
│   │   │   ├── Cargo.toml
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       ├── post.rs
│   │   │       └── prelude.rs
│   │   ├── migration/
│   │   │   ├── Cargo.toml
│   │   │   ├── README.md
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       ├── m20220120_000001_create_post_table.rs
│   │   │       ├── m20220120_000002_seed_posts.rs
│   │   │       └── main.rs
│   │   └── src/
│   │       └── main.rs
│   ├── axum_example/
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   ├── api/
│   │   │   ├── Cargo.toml
│   │   │   ├── src/
│   │   │   │   ├── flash.rs
│   │   │   │   ├── lib.rs
│   │   │   │   └── service/
│   │   │   │       ├── mod.rs
│   │   │   │       ├── mutation.rs
│   │   │   │       └── query.rs
│   │   │   ├── static/
│   │   │   │   └── css/
│   │   │   │       ├── normalize.css
│   │   │   │       ├── skeleton.css
│   │   │   │       └── style.css
│   │   │   ├── templates/
│   │   │   │   ├── edit.html.tera
│   │   │   │   ├── error/
│   │   │   │   │   └── 404.html.tera
│   │   │   │   ├── index.html.tera
│   │   │   │   ├── layout.html.tera
│   │   │   │   └── new.html.tera
│   │   │   └── tests/
│   │   │       └── crud_tests.rs
│   │   ├── entity/
│   │   │   ├── Cargo.toml
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       ├── post.rs
│   │   │       └── prelude.rs
│   │   ├── migration/
│   │   │   ├── Cargo.toml
│   │   │   ├── README.md
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       ├── m20220120_000001_create_post_table.rs
│   │   │       ├── m20220120_000002_seed_posts.rs
│   │   │       └── main.rs
│   │   └── src/
│   │       └── main.rs
│   ├── basic/
│   │   ├── Cargo.toml
│   │   ├── Readme.md
│   │   ├── bakery.sql
│   │   └── src/
│   │       ├── entity/
│   │       │   ├── cake.rs
│   │       │   ├── cake_filling.rs
│   │       │   ├── filling.rs
│   │       │   ├── fruit.rs
│   │       │   ├── mod.rs
│   │       │   └── sea_orm_active_enums.rs
│   │       ├── main.rs
│   │       ├── mutation.rs
│   │       └── query.rs
│   ├── graphql_example/
│   │   ├── .gitignore
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   ├── api/
│   │   │   ├── Cargo.toml
│   │   │   ├── src/
│   │   │   │   ├── db.rs
│   │   │   │   ├── graphql/
│   │   │   │   │   ├── mod.rs
│   │   │   │   │   ├── mutation/
│   │   │   │   │   │   ├── mod.rs
│   │   │   │   │   │   └── note.rs
│   │   │   │   │   ├── query/
│   │   │   │   │   │   ├── mod.rs
│   │   │   │   │   │   └── note.rs
│   │   │   │   │   └── schema.rs
│   │   │   │   ├── lib.rs
│   │   │   │   └── service/
│   │   │   │       ├── mod.rs
│   │   │   │       ├── mutation.rs
│   │   │   │       └── query.rs
│   │   │   └── tests/
│   │   │       └── crud_tests.rs
│   │   ├── entity/
│   │   │   ├── Cargo.toml
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       └── note.rs
│   │   ├── migration/
│   │   │   ├── Cargo.toml
│   │   │   ├── README.md
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       ├── m20220120_000001_create_note_table.rs
│   │   │       ├── m20220120_000002_seed_notes.rs
│   │   │       └── main.rs
│   │   └── src/
│   │       └── main.rs
│   ├── jsonrpsee_example/
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   ├── api/
│   │   │   ├── Cargo.toml
│   │   │   ├── src/
│   │   │   │   ├── lib.rs
│   │   │   │   └── service/
│   │   │   │       ├── mod.rs
│   │   │   │       ├── mutation.rs
│   │   │   │       └── query.rs
│   │   │   └── tests/
│   │   │       └── crud_tests.rs
│   │   ├── entity/
│   │   │   ├── Cargo.toml
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       ├── post.rs
│   │   │       └── prelude.rs
│   │   ├── migration/
│   │   │   ├── Cargo.toml
│   │   │   ├── README.md
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       ├── m20220120_000001_create_post_table.rs
│   │   │       ├── m20220120_000002_seed_posts.rs
│   │   │       └── main.rs
│   │   └── src/
│   │       └── main.rs
│   ├── loco_example/
│   │   ├── .cargo/
│   │   │   └── config.toml
│   │   ├── .dockerignore
│   │   ├── .gitignore
│   │   ├── .rustfmt.toml
│   │   ├── Cargo.lock
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   ├── config/
│   │   │   └── development.yaml
│   │   ├── dockerfile
│   │   ├── frontend/
│   │   │   ├── .eslintrc.cjs
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── App.css
│   │   │   │   ├── App.jsx
│   │   │   │   ├── index.css
│   │   │   │   └── main.jsx
│   │   │   └── vite.config.js
│   │   ├── migration/
│   │   │   ├── Cargo.toml
│   │   │   ├── README.md
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       ├── m20231103_114510_notes.rs
│   │   │       └── main.rs
│   │   ├── src/
│   │   │   ├── app.rs
│   │   │   ├── bin/
│   │   │   │   └── main.rs
│   │   │   ├── controllers/
│   │   │   │   ├── mod.rs
│   │   │   │   └── notes.rs
│   │   │   ├── fixtures/
│   │   │   │   └── notes.yaml
│   │   │   ├── lib.rs
│   │   │   └── models/
│   │   │       ├── _entities/
│   │   │       │   ├── mod.rs
│   │   │       │   ├── notes.rs
│   │   │       │   └── prelude.rs
│   │   │       ├── mod.rs
│   │   │       └── notes.rs
│   │   └── tests/
│   │       ├── mod.rs
│   │       ├── models/
│   │       │   └── mod.rs
│   │       ├── requests/
│   │       │   ├── mod.rs
│   │       │   ├── notes.rs
│   │       │   └── snapshots/
│   │       │       ├── can_add_note@notes_request.snap
│   │       │       ├── can_delete_note@notes_request.snap
│   │       │       ├── can_get_note@notes_request.snap
│   │       │       └── can_get_notes@notes_request.snap
│   │       └── tasks/
│   │           ├── mod.rs
│   │           └── seed.rs
│   ├── loco_seaography/
│   │   ├── .cargo/
│   │   │   └── config.toml
│   │   ├── .devcontainer/
│   │   │   ├── Dockerfile
│   │   │   ├── devcontainer.json
│   │   │   └── docker-compose.yml
│   │   ├── .github/
│   │   │   └── workflows/
│   │   │       └── ci.yaml
│   │   ├── .gitignore
│   │   ├── .rustfmt.toml
│   │   ├── Cargo.lock
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   ├── config/
│   │   │   └── development.yaml
│   │   ├── migration/
│   │   │   ├── Cargo.toml
│   │   │   ├── README.md
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       ├── m20220101_000001_users.rs
│   │   │       ├── m20231103_114510_notes.rs
│   │   │       ├── m20240520_173001_files.rs
│   │   │       └── main.rs
│   │   └── src/
│   │       ├── app.rs
│   │       ├── bin/
│   │       │   └── main.rs
│   │       ├── controllers/
│   │       │   ├── auth.rs
│   │       │   ├── files.rs
│   │       │   ├── graphql.rs
│   │       │   ├── mod.rs
│   │       │   ├── notes.rs
│   │       │   └── user.rs
│   │       ├── fixtures/
│   │       │   ├── notes.yaml
│   │       │   └── users.yaml
│   │       ├── graphql/
│   │       │   ├── mod.rs
│   │       │   └── query_root.rs
│   │       ├── initializers/
│   │       │   ├── graphql.rs
│   │       │   └── mod.rs
│   │       ├── lib.rs
│   │       ├── mailers/
│   │       │   ├── auth/
│   │       │   │   ├── forgot/
│   │       │   │   │   ├── html.t
│   │       │   │   │   ├── subject.t
│   │       │   │   │   └── text.t
│   │       │   │   └── welcome/
│   │       │   │       ├── html.t
│   │       │   │       ├── subject.t
│   │       │   │       └── text.t
│   │       │   ├── auth.rs
│   │       │   └── mod.rs
│   │       ├── models/
│   │       │   ├── _entities/
│   │       │   │   ├── files.rs
│   │       │   │   ├── mod.rs
│   │       │   │   ├── notes.rs
│   │       │   │   ├── prelude.rs
│   │       │   │   └── users.rs
│   │       │   ├── files.rs
│   │       │   ├── mod.rs
│   │       │   ├── notes.rs
│   │       │   └── users.rs
│   │       ├── tasks/
│   │       │   ├── mod.rs
│   │       │   └── seed.rs
│   │       ├── views/
│   │       │   ├── auth.rs
│   │       │   ├── mod.rs
│   │       │   └── user.rs
│   │       └── workers/
│   │           ├── downloader.rs
│   │           └── mod.rs
│   ├── loco_starter/
│   │   ├── .cargo/
│   │   │   └── config.toml
│   │   ├── .devcontainer/
│   │   │   ├── Dockerfile
│   │   │   ├── devcontainer.json
│   │   │   └── docker-compose.yml
│   │   ├── .github/
│   │   │   └── workflows/
│   │   │       └── ci.yaml
│   │   ├── .gitignore
│   │   ├── .rustfmt.toml
│   │   ├── Cargo.lock
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   ├── config/
│   │   │   └── development.yaml
│   │   ├── examples/
│   │   │   └── playground.rs
│   │   ├── migration/
│   │   │   ├── Cargo.toml
│   │   │   ├── README.md
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       ├── m20220101_000001_users.rs
│   │   │       ├── m20231103_114510_notes.rs
│   │   │       ├── m20240520_173001_files.rs
│   │   │       └── main.rs
│   │   └── src/
│   │       ├── app.rs
│   │       ├── bin/
│   │       │   └── main.rs
│   │       ├── controllers/
│   │       │   ├── auth.rs
│   │       │   ├── files.rs
│   │       │   ├── mod.rs
│   │       │   ├── notes.rs
│   │       │   └── user.rs
│   │       ├── fixtures/
│   │       │   ├── notes.yaml
│   │       │   └── users.yaml
│   │       ├── lib.rs
│   │       ├── mailers/
│   │       │   ├── auth/
│   │       │   │   ├── forgot/
│   │       │   │   │   ├── html.t
│   │       │   │   │   ├── subject.t
│   │       │   │   │   └── text.t
│   │       │   │   └── welcome/
│   │       │   │       ├── html.t
│   │       │   │       ├── subject.t
│   │       │   │       └── text.t
│   │       │   ├── auth.rs
│   │       │   └── mod.rs
│   │       ├── models/
│   │       │   ├── _entities/
│   │       │   │   ├── files.rs
│   │       │   │   ├── mod.rs
│   │       │   │   ├── notes.rs
│   │       │   │   ├── prelude.rs
│   │       │   │   └── users.rs
│   │       │   ├── files.rs
│   │       │   ├── mod.rs
│   │       │   ├── notes.rs
│   │       │   └── users.rs
│   │       ├── tasks/
│   │       │   ├── mod.rs
│   │       │   └── seed.rs
│   │       ├── views/
│   │       │   ├── auth.rs
│   │       │   ├── mod.rs
│   │       │   └── user.rs
│   │       └── workers/
│   │           ├── downloader.rs
│   │           └── mod.rs
│   ├── parquet_example/
│   │   ├── Cargo.toml
│   │   └── src/
│   │       └── main.rs
│   ├── poem_example/
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   ├── api/
│   │   │   ├── Cargo.toml
│   │   │   ├── src/
│   │   │   │   ├── lib.rs
│   │   │   │   └── service/
│   │   │   │       ├── mod.rs
│   │   │   │       ├── mutation.rs
│   │   │   │       └── query.rs
│   │   │   ├── static/
│   │   │   │   └── css/
│   │   │   │       ├── normalize.css
│   │   │   │       ├── skeleton.css
│   │   │   │       └── style.css
│   │   │   ├── templates/
│   │   │   │   ├── edit.html.tera
│   │   │   │   ├── error/
│   │   │   │   │   └── 404.html.tera
│   │   │   │   ├── index.html.tera
│   │   │   │   ├── layout.html.tera
│   │   │   │   └── new.html.tera
│   │   │   └── tests/
│   │   │       └── crud_tests.rs
│   │   ├── entity/
│   │   │   ├── Cargo.toml
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       ├── post.rs
│   │   │       └── prelude.rs
│   │   ├── migration/
│   │   │   ├── Cargo.toml
│   │   │   ├── README.md
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       ├── m20220120_000001_create_post_table.rs
│   │   │       ├── m20220120_000002_seed_posts.rs
│   │   │       └── main.rs
│   │   └── src/
│   │       └── main.rs
│   ├── proxy_cloudflare_worker_example/
│   │   ├── .gitignore
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   ├── Wrangler.toml
│   │   └── src/
│   │       ├── entity.rs
│   │       ├── lib.rs
│   │       ├── orm.rs
│   │       └── route.rs
│   ├── proxy_gluesql_example/
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   └── src/
│   │       ├── entity/
│   │       │   ├── mod.rs
│   │       │   └── post.rs
│   │       └── main.rs
│   ├── quickstart/
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   └── src/
│   │       └── main.rs
│   ├── react_admin/
│   │   ├── README.md
│   │   ├── backend/
│   │   │   ├── .cargo/
│   │   │   │   └── config.toml
│   │   │   ├── .devcontainer/
│   │   │   │   ├── Dockerfile
│   │   │   │   ├── devcontainer.json
│   │   │   │   └── docker-compose.yml
│   │   │   ├── .github/
│   │   │   │   └── workflows/
│   │   │   │       └── ci.yaml
│   │   │   ├── .gitignore
│   │   │   ├── .rustfmt.toml
│   │   │   ├── Cargo.lock
│   │   │   ├── Cargo.toml
│   │   │   ├── config/
│   │   │   │   └── development.yaml
│   │   │   ├── examples/
│   │   │   │   └── playground.rs
│   │   │   ├── migration/
│   │   │   │   ├── Cargo.toml
│   │   │   │   ├── README.md
│   │   │   │   └── src/
│   │   │   │       ├── lib.rs
│   │   │   │       ├── m20220101_000001_users.rs
│   │   │   │       ├── m20231103_114510_notes.rs
│   │   │   │       ├── m20240520_173001_files.rs
│   │   │   │       └── main.rs
│   │   │   └── src/
│   │   │       ├── app.rs
│   │   │       ├── bin/
│   │   │       │   └── main.rs
│   │   │       ├── controllers/
│   │   │       │   ├── auth.rs
│   │   │       │   ├── files.rs
│   │   │       │   ├── graphql.rs
│   │   │       │   ├── mod.rs
│   │   │       │   ├── notes.rs
│   │   │       │   └── user.rs
│   │   │       ├── fixtures/
│   │   │       │   ├── notes.yaml
│   │   │       │   └── users.yaml
│   │   │       ├── graphql/
│   │   │       │   ├── mod.rs
│   │   │       │   └── query_root.rs
│   │   │       ├── lib.rs
│   │   │       ├── mailers/
│   │   │       │   ├── auth/
│   │   │       │   │   ├── forgot/
│   │   │       │   │   │   ├── html.t
│   │   │       │   │   │   ├── subject.t
│   │   │       │   │   │   └── text.t
│   │   │       │   │   └── welcome/
│   │   │       │   │       ├── html.t
│   │   │       │   │       ├── subject.t
│   │   │       │   │       └── text.t
│   │   │       │   ├── auth.rs
│   │   │       │   └── mod.rs
│   │   │       ├── models/
│   │   │       │   ├── _entities/
│   │   │       │   │   ├── files.rs
│   │   │       │   │   ├── mod.rs
│   │   │       │   │   ├── notes.rs
│   │   │       │   │   ├── prelude.rs
│   │   │       │   │   └── users.rs
│   │   │       │   ├── files.rs
│   │   │       │   ├── mod.rs
│   │   │       │   ├── notes.rs
│   │   │       │   └── users.rs
│   │   │       ├── tasks/
│   │   │       │   ├── mod.rs
│   │   │       │   └── seed.rs
│   │   │       ├── views/
│   │   │       │   ├── auth.rs
│   │   │       │   ├── mod.rs
│   │   │       │   └── user.rs
│   │   │       └── workers/
│   │   │           ├── downloader.rs
│   │   │           └── mod.rs
│   │   └── frontend/
│   │       ├── .eslintrc.js
│   │       ├── .gitignore
│   │       ├── README.md
│   │       ├── index.html
│   │       ├── package.json
│   │       ├── prettier.config.js
│   │       ├── public/
│   │       │   └── manifest.json
│   │       ├── src/
│   │       │   ├── App.tsx
│   │       │   ├── Layout.tsx
│   │       │   ├── authProvider.ts
│   │       │   ├── dataProvider.ts
│   │       │   ├── index.tsx
│   │       │   ├── users.json
│   │       │   └── vite-env.d.ts
│   │       ├── tsconfig.json
│   │       └── vite.config.ts
│   ├── rocket_example/
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   ├── Rocket.toml
│   │   ├── api/
│   │   │   ├── Cargo.toml
│   │   │   ├── src/
│   │   │   │   ├── lib.rs
│   │   │   │   ├── pool.rs
│   │   │   │   └── service/
│   │   │   │       ├── mod.rs
│   │   │   │       ├── mutation.rs
│   │   │   │       └── query.rs
│   │   │   ├── static/
│   │   │   │   └── css/
│   │   │   │       ├── normalize.css
│   │   │   │       ├── skeleton.css
│   │   │   │       └── style.css
│   │   │   ├── templates/
│   │   │   │   ├── base.html.tera
│   │   │   │   ├── edit.html.tera
│   │   │   │   ├── error/
│   │   │   │   │   └── 404.html.tera
│   │   │   │   ├── index.html.tera
│   │   │   │   └── new.html.tera
│   │   │   └── tests/
│   │   │       └── crud_tests.rs
│   │   ├── entity/
│   │   │   ├── Cargo.toml
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       └── post.rs
│   │   ├── migration/
│   │   │   ├── Cargo.toml
│   │   │   ├── README.md
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       ├── m20220120_000001_create_post_table.rs
│   │   │       ├── m20220120_000002_seed_posts.rs
│   │   │       └── main.rs
│   │   └── src/
│   │       └── main.rs
│   ├── rocket_okapi_example/
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   ├── Rocket.toml
│   │   ├── api/
│   │   │   ├── Cargo.toml
│   │   │   └── src/
│   │   │       ├── error.rs
│   │   │       ├── lib.rs
│   │   │       ├── okapi_example.rs
│   │   │       └── pool.rs
│   │   ├── dto/
│   │   │   ├── Cargo.toml
│   │   │   └── src/
│   │   │       ├── dto.rs
│   │   │       └── lib.rs
│   │   ├── entity/
│   │   │   ├── Cargo.toml
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       └── post.rs
│   │   ├── migration/
│   │   │   ├── Cargo.toml
│   │   │   ├── README.md
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       ├── m20220120_000001_create_post_table.rs
│   │   │       └── main.rs
│   │   ├── service/
│   │   │   ├── Cargo.toml
│   │   │   ├── src/
│   │   │   │   ├── lib.rs
│   │   │   │   ├── mutation.rs
│   │   │   │   └── query.rs
│   │   │   └── tests/
│   │   │       └── crud_tests.rs
│   │   └── src/
│   │       └── main.rs
│   ├── salvo_example/
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   ├── api/
│   │   │   ├── Cargo.toml
│   │   │   ├── src/
│   │   │   │   ├── lib.rs
│   │   │   │   └── service/
│   │   │   │       ├── mod.rs
│   │   │   │       ├── mutation.rs
│   │   │   │       └── query.rs
│   │   │   ├── static/
│   │   │   │   └── css/
│   │   │   │       ├── normalize.css
│   │   │   │       ├── skeleton.css
│   │   │   │       └── style.css
│   │   │   ├── templates/
│   │   │   │   ├── edit.html.tera
│   │   │   │   ├── error/
│   │   │   │   │   └── 404.html.tera
│   │   │   │   ├── index.html.tera
│   │   │   │   ├── layout.html.tera
│   │   │   │   └── new.html.tera
│   │   │   └── tests/
│   │   │       └── crud_tests.rs
│   │   ├── entity/
│   │   │   ├── Cargo.toml
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       ├── post.rs
│   │   │       └── prelude.rs
│   │   ├── migration/
│   │   │   ├── Cargo.toml
│   │   │   ├── README.md
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       ├── m20220120_000001_create_post_table.rs
│   │   │       ├── m20220120_000002_seed_posts.rs
│   │   │       └── main.rs
│   │   └── src/
│   │       └── main.rs
│   ├── seaography_example/
│   │   ├── README.md
│   │   ├── graphql/
│   │   │   ├── Cargo.toml
│   │   │   ├── src/
│   │   │   │   ├── entities/
│   │   │   │   │   ├── baker.rs
│   │   │   │   │   ├── bakery.rs
│   │   │   │   │   ├── cake.rs
│   │   │   │   │   ├── cake_baker.rs
│   │   │   │   │   ├── mod.rs
│   │   │   │   │   └── prelude.rs
│   │   │   │   ├── lib.rs
│   │   │   │   ├── main.rs
│   │   │   │   └── query_root.rs
│   │   │   └── tests/
│   │   │       └── query_tests.rs
│   │   └── migration/
│   │       ├── Cargo.toml
│   │       ├── README.md
│   │       └── src/
│   │           ├── entity/
│   │           │   ├── baker.rs
│   │           │   ├── bakery.rs
│   │           │   ├── cake.rs
│   │           │   ├── cake_baker.rs
│   │           │   ├── mod.rs
│   │           │   └── prelude.rs
│   │           ├── lib.rs
│   │           ├── m20230101_000001_create_bakery_table.rs
│   │           ├── m20230101_000002_create_baker_table.rs
│   │           ├── m20230101_000003_create_cake_table.rs
│   │           ├── m20230101_000004_create_cake_baker_table.rs
│   │           ├── m20230101_000005_create_customer_table.rs
│   │           ├── m20230101_000006_create_order_table.rs
│   │           ├── m20230101_000007_create_lineitem_table.rs
│   │           ├── m20230102_000001_seed_bakery_data.rs
│   │           └── main.rs
│   └── tonic_example/
│       ├── Cargo.toml
│       ├── README.md
│       ├── api/
│       │   ├── Cargo.toml
│       │   ├── build.rs
│       │   ├── proto/
│       │   │   └── post.proto
│       │   ├── src/
│       │   │   ├── lib.rs
│       │   │   └── service/
│       │   │       ├── mod.rs
│       │   │       ├── mutation.rs
│       │   │       └── query.rs
│       │   └── tests/
│       │       └── crud_tests.rs
│       ├── entity/
│       │   ├── Cargo.toml
│       │   └── src/
│       │       ├── lib.rs
│       │       ├── post.rs
│       │       └── prelude.rs
│       ├── migration/
│       │   ├── Cargo.toml
│       │   ├── README.md
│       │   └── src/
│       │       ├── lib.rs
│       │       ├── m20220120_000001_create_post_table.rs
│       │       ├── m20220120_000002_seed_posts.rs
│       │       └── main.rs
│       └── src/
│           ├── client.rs
│           └── server.rs
├── issues/
│   ├── 1143/
│   │   ├── Cargo.toml
│   │   └── src/
│   │       ├── entity/
│   │       │   ├── mod.rs
│   │       │   └── sea_orm_active_enums.rs
│   │       └── main.rs
│   ├── 1278/
│   │   ├── Cargo.toml
│   │   └── src/
│   │       ├── entity.rs
│   │       └── main.rs
│   ├── 1357/
│   │   ├── Cargo.toml
│   │   └── src/
│   │       ├── entity.rs
│   │       └── main.rs
│   ├── 1473/
│   │   ├── Cargo.toml
│   │   └── src/
│   │       └── main.rs
│   ├── 1582/
│   │   └── schema.sql
│   ├── 1599/
│   │   ├── Cargo.toml
│   │   ├── entity/
│   │   │   ├── Cargo.toml
│   │   │   └── src/
│   │   │       ├── cake.rs
│   │   │       ├── cake_filling.rs
│   │   │       ├── filling.rs
│   │   │       ├── fruit.rs
│   │   │       └── lib.rs
│   │   └── graphql/
│   │       ├── Cargo.toml
│   │       └── src/
│   │           ├── main.rs
│   │           └── query_root.rs
│   ├── 1790/
│   │   ├── Cargo.toml
│   │   └── insert_test.rs
│   ├── 249/
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── Cargo.toml
│   │   │   └── src/
│   │   │       └── main.rs
│   │   └── service/
│   │       ├── Cargo.toml
│   │       └── src/
│   │           └── lib.rs
│   ├── 262/
│   │   ├── Cargo.toml
│   │   └── src/
│   │       ├── cake.rs
│   │       └── main.rs
│   ├── 319/
│   │   ├── Cargo.toml
│   │   └── src/
│   │       ├── main.rs
│   │       └── material.rs
│   ├── 324/
│   │   ├── Cargo.toml
│   │   └── src/
│   │       ├── main.rs
│   │       └── model.rs
│   ├── 352/
│   │   ├── Cargo.toml
│   │   └── src/
│   │       ├── binary_primary_key.rs
│   │       ├── main.rs
│   │       ├── quaternary_primary_key.rs
│   │       ├── quinary_primary_key.rs
│   │       ├── senary_primary_key.rs
│   │       ├── ternary_primary_key.rs
│   │       └── unary_primary_key.rs
│   ├── 356/
│   │   ├── Cargo.toml
│   │   └── src/
│   │       ├── main.rs
│   │       └── model.rs
│   ├── 400/
│   │   ├── Cargo.toml
│   │   └── src/
│   │       ├── main.rs
│   │       └── model.rs
│   ├── 471/
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   └── src/
│   │       ├── main.rs
│   │       ├── post.rs
│   │       └── setup.rs
│   ├── 630/
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   ├── create_underscores_table.sql
│   │   └── src/
│   │       ├── entity/
│   │       │   ├── mod.rs
│   │       │   ├── prelude.rs
│   │       │   ├── underscores.rs
│   │       │   └── underscores_workaround.rs
│   │       └── main.rs
│   ├── 693/
│   │   ├── Cargo.toml
│   │   └── src/
│   │       ├── container.rs
│   │       ├── content.rs
│   │       └── main.rs
│   ├── 86/
│   │   ├── Cargo.toml
│   │   └── src/
│   │       ├── cake.rs
│   │       └── main.rs
│   └── 892/
│       ├── Cargo.toml
│       └── src/
│           └── main.rs
├── sea-orm-arrow/
│   ├── Cargo.toml
│   └── src/
│       └── lib.rs
├── sea-orm-cli/
│   ├── Cargo.toml
│   ├── README.md
│   ├── src/
│   │   ├── bin/
│   │   │   └── main.rs
│   │   ├── cli.rs
│   │   ├── commands/
│   │   │   ├── generate.rs
│   │   │   ├── migrate.rs
│   │   │   └── mod.rs
│   │   └── lib.rs
│   └── template/
│       └── migration/
│           ├── README.md
│           ├── _Cargo.toml
│           ├── _gitignore
│           └── src/
│               ├── lib.rs
│               ├── m20220101_000001_create_table.rs
│               └── main.rs
├── sea-orm-codegen/
│   ├── Cargo.toml
│   ├── README.md
│   ├── rustfmt.toml
│   ├── src/
│   │   ├── entity/
│   │   │   ├── active_enum.rs
│   │   │   ├── base_entity.rs
│   │   │   ├── column.rs
│   │   │   ├── conjunct_relation.rs
│   │   │   ├── mod.rs
│   │   │   ├── primary_key.rs
│   │   │   ├── relation.rs
│   │   │   ├── transformer.rs
│   │   │   ├── writer/
│   │   │   │   ├── compact.rs
│   │   │   │   ├── dense.rs
│   │   │   │   ├── expanded.rs
│   │   │   │   ├── frontend.rs
│   │   │   │   └── mermaid.rs
│   │   │   └── writer.rs
│   │   ├── error.rs
│   │   ├── lib.rs
│   │   ├── merge/
│   │   │   ├── extract.rs
│   │   │   └── mod.rs
│   │   ├── tests_cfg/
│   │   │   ├── compact/
│   │   │   │   ├── indexes.rs
│   │   │   │   └── mod.rs
│   │   │   ├── dense/
│   │   │   │   ├── indexes.rs
│   │   │   │   └── mod.rs
│   │   │   ├── duplicated_many_to_many_paths/
│   │   │   │   ├── bills.rs
│   │   │   │   ├── mod.rs
│   │   │   │   ├── prelude.rs
│   │   │   │   ├── users.rs
│   │   │   │   ├── users_saved_bills.rs
│   │   │   │   └── users_votes.rs
│   │   │   ├── many_to_many/
│   │   │   │   ├── bills.rs
│   │   │   │   ├── mod.rs
│   │   │   │   ├── prelude.rs
│   │   │   │   ├── users.rs
│   │   │   │   └── users_votes.rs
│   │   │   ├── many_to_many_multiple/
│   │   │   │   ├── bills.rs
│   │   │   │   ├── mod.rs
│   │   │   │   ├── prelude.rs
│   │   │   │   ├── users.rs
│   │   │   │   └── users_votes.rs
│   │   │   ├── mod.rs
│   │   │   └── self_referencing/
│   │   │       ├── bills.rs
│   │   │       ├── mod.rs
│   │   │       ├── prelude.rs
│   │   │       └── users.rs
│   │   └── util.rs
│   └── tests/
│       ├── compact/
│       │   ├── cake.rs
│       │   ├── cake_filling.rs
│       │   ├── cake_filling_price.rs
│       │   ├── cake_with_double.rs
│       │   ├── cake_with_float.rs
│       │   ├── child.rs
│       │   ├── collection.rs
│       │   ├── collection_float.rs
│       │   ├── filling.rs
│       │   ├── fruit.rs
│       │   ├── mod.rs
│       │   ├── parent.rs
│       │   ├── prelude.rs
│       │   ├── rust_keyword.rs
│       │   └── vendor.rs
│       ├── compact_with_attributes/
│       │   ├── cake_multiple.rs
│       │   ├── cake_none.rs
│       │   └── cake_one.rs
│       ├── compact_with_derives/
│       │   ├── cake_multiple.rs
│       │   ├── cake_none.rs
│       │   └── cake_one.rs
│       ├── compact_with_schema_name/
│       │   ├── cake.rs
│       │   ├── cake_filling.rs
│       │   ├── cake_filling_price.rs
│       │   ├── cake_with_double.rs
│       │   ├── cake_with_float.rs
│       │   ├── child.rs
│       │   ├── collection.rs
│       │   ├── collection_float.rs
│       │   ├── filling.rs
│       │   ├── fruit.rs
│       │   ├── mod.rs
│       │   ├── parent.rs
│       │   ├── prelude.rs
│       │   ├── rust_keyword.rs
│       │   └── vendor.rs
│       ├── compact_with_serde/
│       │   ├── cake_both.rs
│       │   ├── cake_deserialize.rs
│       │   ├── cake_none.rs
│       │   ├── cake_serialize.rs
│       │   └── cake_serialize_with_hidden_column.rs
│       ├── dense/
│       │   ├── cake.rs
│       │   ├── cake_filling.rs
│       │   ├── cake_filling_price.rs
│       │   ├── cake_with_double.rs
│       │   ├── cake_with_float.rs
│       │   ├── child.rs
│       │   ├── collection.rs
│       │   ├── collection_float.rs
│       │   ├── filling.rs
│       │   ├── fruit.rs
│       │   ├── mod.rs
│       │   ├── parent.rs
│       │   ├── prelude.rs
│       │   ├── rust_keyword.rs
│       │   └── vendor.rs
│       ├── expanded/
│       │   ├── cake.rs
│       │   ├── cake_filling.rs
│       │   ├── cake_filling_price.rs
│       │   ├── cake_with_double.rs
│       │   ├── cake_with_float.rs
│       │   ├── child.rs
│       │   ├── collection.rs
│       │   ├── collection_float.rs
│       │   ├── filling.rs
│       │   ├── fruit.rs
│       │   ├── mod.rs
│       │   ├── parent.rs
│       │   ├── prelude.rs
│       │   ├── rust_keyword.rs
│       │   └── vendor.rs
│       ├── expanded_with_attributes/
│       │   ├── cake_multiple.rs
│       │   ├── cake_none.rs
│       │   └── cake_one.rs
│       ├── expanded_with_column_derives/
│       │   ├── cake_multiple.rs
│       │   ├── cake_none.rs
│       │   └── cake_one.rs
│       ├── expanded_with_derives/
│       │   ├── cake_multiple.rs
│       │   ├── cake_none.rs
│       │   └── cake_one.rs
│       ├── expanded_with_schema_name/
│       │   ├── cake.rs
│       │   ├── cake_filling.rs
│       │   ├── cake_filling_price.rs
│       │   ├── cake_with_double.rs
│       │   ├── cake_with_float.rs
│       │   ├── child.rs
│       │   ├── collection.rs
│       │   ├── collection_float.rs
│       │   ├── filling.rs
│       │   ├── fruit.rs
│       │   ├── mod.rs
│       │   ├── parent.rs
│       │   ├── prelude.rs
│       │   ├── rust_keyword.rs
│       │   └── vendor.rs
│       ├── expanded_with_serde/
│       │   ├── cake_both.rs
│       │   ├── cake_deserialize.rs
│       │   ├── cake_none.rs
│       │   ├── cake_serialize.rs
│       │   └── cake_serialize_with_hidden_column.rs
│       ├── frontend/
│       │   ├── cake.rs
│       │   ├── cake_filling.rs
│       │   ├── cake_filling_price.rs
│       │   ├── cake_with_double.rs
│       │   ├── cake_with_float.rs
│       │   ├── child.rs
│       │   ├── collection.rs
│       │   ├── collection_float.rs
│       │   ├── filling.rs
│       │   ├── fruit.rs
│       │   ├── mod.rs
│       │   ├── parent.rs
│       │   ├── prelude.rs
│       │   ├── rust_keyword.rs
│       │   └── vendor.rs
│       ├── frontend_with_attributes/
│       │   ├── cake_multiple.rs
│       │   ├── cake_none.rs
│       │   └── cake_one.rs
│       ├── frontend_with_derives/
│       │   ├── cake_multiple.rs
│       │   ├── cake_none.rs
│       │   └── cake_one.rs
│       ├── frontend_with_schema_name/
│       │   ├── cake.rs
│       │   ├── cake_filling.rs
│       │   ├── cake_filling_price.rs
│       │   ├── cake_with_double.rs
│       │   ├── cake_with_float.rs
│       │   ├── child.rs
│       │   ├── collection.rs
│       │   ├── collection_float.rs
│       │   ├── filling.rs
│       │   ├── fruit.rs
│       │   ├── mod.rs
│       │   ├── parent.rs
│       │   ├── prelude.rs
│       │   ├── rust_keyword.rs
│       │   └── vendor.rs
│       ├── frontend_with_serde/
│       │   ├── cake_both.rs
│       │   ├── cake_deserialize.rs
│       │   ├── cake_none.rs
│       │   ├── cake_serialize.rs
│       │   └── cake_serialize_with_hidden_column.rs
│       ├── postgres/
│       │   ├── binary_json.rs
│       │   └── binary_json_expanded.rs
│       └── with_seaography/
│           ├── cake.rs
│           ├── cake_expanded.rs
│           ├── cake_frontend.rs
│           └── mod.rs
├── sea-orm-macros/
│   ├── Cargo.toml
│   ├── src/
│   │   ├── derives/
│   │   │   ├── active_enum.rs
│   │   │   ├── active_enum_display.rs
│   │   │   ├── active_model.rs
│   │   │   ├── active_model_behavior.rs
│   │   │   ├── active_model_ex.rs
│   │   │   ├── arrow_schema.rs
│   │   │   ├── attributes.rs
│   │   │   ├── case_style.rs
│   │   │   ├── column.rs
│   │   │   ├── derive_iden.rs
│   │   │   ├── entity.rs
│   │   │   ├── entity_loader.rs
│   │   │   ├── entity_model.rs
│   │   │   ├── from_query_result.rs
│   │   │   ├── into_active_model.rs
│   │   │   ├── migration.rs
│   │   │   ├── mod.rs
│   │   │   ├── model.rs
│   │   │   ├── model_ex.rs
│   │   │   ├── partial_model.rs
│   │   │   ├── primary_key.rs
│   │   │   ├── related_entity.rs
│   │   │   ├── relation.rs
│   │   │   ├── try_getable_from_json.rs
│   │   │   ├── typed_column.rs
│   │   │   ├── util.rs
│   │   │   ├── value_type.rs
│   │   │   └── value_type_match.rs
│   │   ├── lib.rs
│   │   ├── raw_sql.rs
│   │   └── strum/
│   │       ├── LICENSE
│   │       ├── enum_iter.rs
│   │       ├── helpers/
│   │       │   ├── case_style.rs
│   │       │   ├── metadata.rs
│   │       │   ├── mod.rs
│   │       │   ├── type_props.rs
│   │       │   └── variant_props.rs
│   │       └── mod.rs
│   └── tests/
│       ├── derive_active_enum_test.rs
│       ├── derive_entity_model_auto_increment_test.rs
│       ├── derive_entity_model_column_name_test.rs
│       └── derive_value_type_test.rs
├── sea-orm-migration/
│   ├── Cargo.toml
│   ├── README.md
│   ├── src/
│   │   ├── cli.rs
│   │   ├── connection.rs
│   │   ├── lib.rs
│   │   ├── manager.rs
│   │   ├── migrator/
│   │   │   ├── exec.rs
│   │   │   ├── queries.rs
│   │   │   └── with_self.rs
│   │   ├── migrator.rs
│   │   ├── prelude.rs
│   │   ├── schema.rs
│   │   ├── seaql_migrations.rs
│   │   └── util.rs
│   └── tests/
│       ├── common/
│       │   ├── migration/
│       │   │   ├── m20220118_000001_create_cake_table.rs
│       │   │   ├── m20220118_000002_create_fruit_table.rs
│       │   │   ├── m20220118_000003_seed_cake_table.rs
│       │   │   ├── m20220118_000004_create_tea_enum.rs
│       │   │   ├── m20220923_000001_seed_cake_table.rs
│       │   │   ├── m20230109_000001_seed_cake_table.rs
│       │   │   ├── m20250101_000001_create_test_table.rs
│       │   │   ├── m20250101_000002_manual_transaction.rs
│       │   │   └── mod.rs
│       │   ├── migrator/
│       │   │   ├── default.rs
│       │   │   ├── mod.rs
│       │   │   ├── override_migration_table_name.rs
│       │   │   ├── transaction_test.rs
│       │   │   └── with_self.rs
│       │   └── mod.rs
│       ├── main.rs
│       └── postgres.rs
├── sea-orm-rocket/
│   ├── Cargo.toml
│   ├── README.md
│   ├── codegen/
│   │   ├── Cargo.toml
│   │   └── src/
│   │       ├── database.rs
│   │       └── lib.rs
│   └── lib/
│       ├── Cargo.toml
│       └── src/
│           ├── config.rs
│           ├── database.rs
│           ├── error.rs
│           ├── lib.rs
│           └── pool.rs
├── sea-orm-sync/
│   ├── CLAUDE.md
│   ├── Cargo.toml
│   ├── README.md
│   ├── examples/
│   │   ├── parquet_example/
│   │   │   ├── Cargo.toml
│   │   │   └── src/
│   │   │       └── main.rs
│   │   ├── pi_spigot/
│   │   │   ├── Cargo.toml
│   │   │   ├── README.md
│   │   │   ├── bdigits.html
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       └── main.rs
│   │   └── quickstart/
│   │       ├── Cargo.toml
│   │       ├── README.md
│   │       └── src/
│   │           └── main.rs
│   ├── src/
│   │   ├── database/
│   │   │   ├── connection.rs
│   │   │   ├── db_connection.rs
│   │   │   ├── executor.rs
│   │   │   ├── mock.rs
│   │   │   ├── mod.rs
│   │   │   ├── proxy.rs
│   │   │   ├── restricted_connection.rs
│   │   │   ├── sea_schema_rusqlite.rs
│   │   │   ├── sea_schema_shim.rs
│   │   │   ├── statement.rs
│   │   │   ├── stream/
│   │   │   │   ├── metric.rs
│   │   │   │   ├── mod.rs
│   │   │   │   ├── query.rs
│   │   │   │   └── transaction.rs
│   │   │   ├── tracing_spans.rs
│   │   │   └── transaction.rs
│   │   ├── docs.rs
│   │   ├── driver/
│   │   │   ├── mock.rs
│   │   │   ├── mod.rs
│   │   │   ├── proxy.rs
│   │   │   ├── rusqlite.rs
│   │   │   ├── sqlite.rs
│   │   │   ├── sqlx_common.rs
│   │   │   ├── sqlx_mysql.rs
│   │   │   ├── sqlx_postgres.rs
│   │   │   └── sqlx_sqlite.rs
│   │   ├── dynamic/
│   │   │   ├── entity.rs
│   │   │   ├── execute.rs
│   │   │   ├── mod.rs
│   │   │   └── model.rs
│   │   ├── entity/
│   │   │   ├── ARROW.md
│   │   │   ├── DESIGN.md
│   │   │   ├── active_enum.rs
│   │   │   ├── active_model.rs
│   │   │   ├── active_model_ex.rs
│   │   │   ├── active_value.rs
│   │   │   ├── arrow_schema.rs
│   │   │   ├── base_entity.rs
│   │   │   ├── column/
│   │   │   │   ├── types/
│   │   │   │   │   ├── postgres_array.rs
│   │   │   │   │   ├── with_datetime.rs
│   │   │   │   │   ├── with_ipnetwork.rs
│   │   │   │   │   ├── with_json.rs
│   │   │   │   │   └── with_uuid.rs
│   │   │   │   └── types.rs
│   │   │   ├── column.rs
│   │   │   ├── column_def.rs
│   │   │   ├── compound/
│   │   │   │   ├── has_many.rs
│   │   │   │   └── has_one.rs
│   │   │   ├── compound.rs
│   │   │   ├── identity.rs
│   │   │   ├── link.rs
│   │   │   ├── mod.rs
│   │   │   ├── model.rs
│   │   │   ├── partial_model.rs
│   │   │   ├── prelude.rs
│   │   │   ├── primary_key.rs
│   │   │   ├── registry.rs
│   │   │   ├── relation.rs
│   │   │   └── with_arrow.rs
│   │   ├── error.rs
│   │   ├── executor/
│   │   │   ├── consolidate.rs
│   │   │   ├── cursor.rs
│   │   │   ├── delete.rs
│   │   │   ├── execute.rs
│   │   │   ├── insert.rs
│   │   │   ├── mod.rs
│   │   │   ├── paginator.rs
│   │   │   ├── query.rs
│   │   │   ├── returning.rs
│   │   │   ├── select/
│   │   │   │   ├── five.rs
│   │   │   │   ├── four.rs
│   │   │   │   ├── six.rs
│   │   │   │   └── three.rs
│   │   │   ├── select.rs
│   │   │   ├── select_ext.rs
│   │   │   └── update.rs
│   │   ├── lib.rs
│   │   ├── metric.rs
│   │   ├── query/
│   │   │   ├── combine.rs
│   │   │   ├── debug.rs
│   │   │   ├── delete.rs
│   │   │   ├── helper.rs
│   │   │   ├── insert.rs
│   │   │   ├── join.rs
│   │   │   ├── json.rs
│   │   │   ├── loader.rs
│   │   │   ├── mod.rs
│   │   │   ├── select.rs
│   │   │   ├── traits.rs
│   │   │   ├── update.rs
│   │   │   └── util.rs
│   │   ├── rbac/
│   │   │   ├── context.rs
│   │   │   ├── engine/
│   │   │   │   ├── loader.rs
│   │   │   │   ├── mod.rs
│   │   │   │   ├── permission_request.rs
│   │   │   │   ├── resource_request.rs
│   │   │   │   ├── role_hierarchy_impl.rs
│   │   │   │   └── snapshot.rs
│   │   │   ├── entity/
│   │   │   │   ├── mod.rs
│   │   │   │   ├── permission.rs
│   │   │   │   ├── resource.rs
│   │   │   │   ├── role.rs
│   │   │   │   ├── role_hierarchy.rs
│   │   │   │   ├── role_permission.rs
│   │   │   │   ├── user.rs
│   │   │   │   ├── user_override.rs
│   │   │   │   └── user_role.rs
│   │   │   ├── error.rs
│   │   │   ├── mod.rs
│   │   │   └── schema.rs
│   │   ├── schema/
│   │   │   ├── builder.rs
│   │   │   ├── entity.rs
│   │   │   ├── json.rs
│   │   │   ├── mod.rs
│   │   │   └── topology.rs
│   │   ├── tests_cfg/
│   │   │   ├── cake.rs
│   │   │   ├── cake_compact.rs
│   │   │   ├── cake_expanded.rs
│   │   │   ├── cake_filling.rs
│   │   │   ├── cake_filling_price.rs
│   │   │   ├── cake_seaography.rs
│   │   │   ├── comment.rs
│   │   │   ├── entity_linked.rs
│   │   │   ├── filling.rs
│   │   │   ├── fruit.rs
│   │   │   ├── indexes.rs
│   │   │   ├── ingredient.rs
│   │   │   ├── lunch_set.rs
│   │   │   ├── lunch_set_expanded.rs
│   │   │   ├── mod.rs
│   │   │   ├── post.rs
│   │   │   ├── post_tag.rs
│   │   │   ├── profile.rs
│   │   │   ├── registry.rs
│   │   │   ├── rust_keyword.rs
│   │   │   ├── sea_orm_active_enums.rs
│   │   │   ├── serde_rename.rs
│   │   │   ├── tag.rs
│   │   │   ├── user.rs
│   │   │   └── vendor.rs
│   │   ├── util.rs
│   │   ├── value/
│   │   │   ├── text_uuid.rs
│   │   │   ├── timestamp.rs
│   │   │   ├── with_chrono.rs
│   │   │   └── with_time.rs
│   │   └── value.rs
│   └── tests/
│       ├── active_enum_tests.rs
│       ├── active_model_ex_tests.rs
│       ├── arrow_schema_tests.rs
│       ├── arrow_tests.rs
│       ├── basic.rs
│       ├── bits_tests.rs
│       ├── byte_primary_key_tests.rs
│       ├── collection_tests.rs
│       ├── common/
│       │   ├── bakery_chain/
│       │   │   ├── Readme.md
│       │   │   ├── baker.rs
│       │   │   ├── bakery.rs
│       │   │   ├── cake.rs
│       │   │   ├── cakes_bakers.rs
│       │   │   ├── customer.rs
│       │   │   ├── lineitem.rs
│       │   │   ├── mod.rs
│       │   │   ├── order.rs
│       │   │   ├── schema.rs
│       │   │   └── seed_data.rs
│       │   ├── bakery_dense/
│       │   │   ├── NOTES.md
│       │   │   ├── baker.rs
│       │   │   ├── bakery.rs
│       │   │   ├── cake.rs
│       │   │   ├── cakes_bakers.rs
│       │   │   ├── customer.rs
│       │   │   ├── entities.mermaid
│       │   │   ├── lineitem.rs
│       │   │   ├── mod.rs
│       │   │   ├── order.rs
│       │   │   └── prelude.rs
│       │   ├── blogger/
│       │   │   ├── attachment.rs
│       │   │   ├── comment.rs
│       │   │   ├── mod.rs
│       │   │   ├── post.rs
│       │   │   ├── post_tag.rs
│       │   │   ├── profile.rs
│       │   │   ├── tag.rs
│       │   │   ├── user.rs
│       │   │   ├── user_follower.rs
│       │   │   └── user_mono.rs
│       │   ├── features/
│       │   │   ├── active_enum.rs
│       │   │   ├── active_enum_child.rs
│       │   │   ├── active_enum_vec.rs
│       │   │   ├── applog.rs
│       │   │   ├── binary.rs
│       │   │   ├── bits.rs
│       │   │   ├── byte_primary_key.rs
│       │   │   ├── categories.rs
│       │   │   ├── collection.rs
│       │   │   ├── collection_expanded.rs
│       │   │   ├── custom_active_model.rs
│       │   │   ├── dyn_table_name.rs
│       │   │   ├── edit_log.rs
│       │   │   ├── embedding.rs
│       │   │   ├── event_trigger.rs
│       │   │   ├── host_network.rs
│       │   │   ├── insert_default.rs
│       │   │   ├── json_struct.rs
│       │   │   ├── json_vec.rs
│       │   │   ├── json_vec_derive.rs
│       │   │   ├── metadata.rs
│       │   │   ├── mod.rs
│       │   │   ├── pi.rs
│       │   │   ├── repository.rs
│       │   │   ├── satellite.rs
│       │   │   ├── schema.rs
│       │   │   ├── sea_orm_active_enums.rs
│       │   │   ├── self_join.rs
│       │   │   ├── teas.rs
│       │   │   ├── transaction_log.rs
│       │   │   ├── uuid_fmt.rs
│       │   │   └── value_type.rs
│       │   ├── film_store.rs
│       │   ├── mod.rs
│       │   ├── runtime.rs
│       │   ├── sakila/
│       │   │   ├── NOTES.md
│       │   │   └── entities.mermaid
│       │   └── setup/
│       │       └── mod.rs
│       ├── connection_tests.rs
│       ├── crud/
│       │   ├── create_baker.rs
│       │   ├── create_cake.rs
│       │   ├── create_lineitem.rs
│       │   ├── create_order.rs
│       │   ├── deletes.rs
│       │   ├── error.rs
│       │   ├── mod.rs
│       │   └── updates.rs
│       ├── crud_tests.rs
│       ├── cursor_tests.rs
│       ├── database_executor_tests.rs
│       ├── delete_by_id_tests.rs
│       ├── derive_iden_tests.rs
│       ├── derive_model_tests.rs
│       ├── derive_tests.rs
│       ├── dyn_table_name_tests.rs
│       ├── embedding_tests.rs
│       ├── empty_insert_tests.rs
│       ├── entity_loader_tests.rs
│       ├── enum_primary_key_tests.rs
│       ├── event_trigger_tests.rs
│       ├── execute_unprepared_tests.rs
│       ├── exists_tests.rs
│       ├── from_query_result_tests.rs
│       ├── host_network_tests.rs
│       ├── impl_from_for_active_model.rs
│       ├── insert_default_tests.rs
│       ├── json_struct_tests.rs
│       ├── json_vec_tests.rs
│       ├── loader_tests.rs
│       ├── multi_select_tests.rs
│       ├── paginator_tests.rs
│       ├── parallel_tests.rs
│       ├── partial_model_nested/
│       │   ├── local/
│       │   │   ├── mod.rs
│       │   │   └── model/
│       │   │       ├── bakery.rs
│       │   │       ├── mod.rs
│       │   │       ├── schema.rs
│       │   │       └── worker.rs
│       │   ├── main.rs
│       │   └── nested_alias.rs
│       ├── partial_model_tests.rs
│       ├── pi_tests.rs
│       ├── query_tests.rs
│       ├── raw_sql_tests.rs
│       ├── rbac_tests.rs
│       ├── relational_tests.rs
│       ├── returning_tests.rs
│       ├── schema_sync_tests.rs
│       ├── self_join_tests.rs
│       ├── sequential_op_tests.rs
│       ├── sql_err_tests.rs
│       ├── stream_tests.rs
│       ├── string_primary_key_tests.rs
│       ├── text_uuid_tests.rs
│       ├── time_crate_tests.rs
│       ├── timestamp_tests.rs
│       ├── transaction_tests.rs
│       ├── type_tests.rs
│       ├── upsert_tests.rs
│       ├── uuid_fmt_tests.rs
│       ├── uuid_tests.rs
│       └── value_type_tests.rs
├── src/
│   ├── database/
│   │   ├── connection.rs
│   │   ├── db_connection.rs
│   │   ├── executor.rs
│   │   ├── mock.rs
│   │   ├── mod.rs
│   │   ├── proxy.rs
│   │   ├── restricted_connection.rs
│   │   ├── sea_schema_rusqlite.rs
│   │   ├── sea_schema_shim.rs
│   │   ├── statement.rs
│   │   ├── stream/
│   │   │   ├── metric.rs
│   │   │   ├── mod.rs
│   │   │   ├── query.rs
│   │   │   └── transaction.rs
│   │   ├── tracing_spans.rs
│   │   └── transaction.rs
│   ├── docs.rs
│   ├── driver/
│   │   ├── mock.rs
│   │   ├── mod.rs
│   │   ├── proxy.rs
│   │   ├── rusqlite.rs
│   │   ├── sqlite.rs
│   │   ├── sqlx_common.rs
│   │   ├── sqlx_mysql.rs
│   │   ├── sqlx_postgres.rs
│   │   └── sqlx_sqlite.rs
│   ├── dynamic/
│   │   ├── entity.rs
│   │   ├── execute.rs
│   │   ├── mod.rs
│   │   └── model.rs
│   ├── entity/
│   │   ├── ARROW.md
│   │   ├── DESIGN.md
│   │   ├── active_enum.rs
│   │   ├── active_model.rs
│   │   ├── active_model_ex.rs
│   │   ├── active_value.rs
│   │   ├── arrow_schema.rs
│   │   ├── base_entity.rs
│   │   ├── column/
│   │   │   ├── types/
│   │   │   │   ├── postgres_array.rs
│   │   │   │   ├── with_datetime.rs
│   │   │   │   ├── with_ipnetwork.rs
│   │   │   │   ├── with_json.rs
│   │   │   │   └── with_uuid.rs
│   │   │   └── types.rs
│   │   ├── column.rs
│   │   ├── column_def.rs
│   │   ├── compound/
│   │   │   ├── has_many.rs
│   │   │   └── has_one.rs
│   │   ├── compound.rs
│   │   ├── identity.rs
│   │   ├── link.rs
│   │   ├── mod.rs
│   │   ├── model.rs
│   │   ├── partial_model.rs
│   │   ├── prelude.rs
│   │   ├── primary_key.rs
│   │   ├── registry.rs
│   │   ├── relation.rs
│   │   └── with_arrow.rs
│   ├── error.rs
│   ├── executor/
│   │   ├── consolidate.rs
│   │   ├── cursor.rs
│   │   ├── delete.rs
│   │   ├── execute.rs
│   │   ├── insert.rs
│   │   ├── mod.rs
│   │   ├── paginator.rs
│   │   ├── query.rs
│   │   ├── returning.rs
│   │   ├── select/
│   │   │   ├── five.rs
│   │   │   ├── four.rs
│   │   │   ├── six.rs
│   │   │   └── three.rs
│   │   ├── select.rs
│   │   ├── select_ext.rs
│   │   └── update.rs
│   ├── lib.rs
│   ├── metric.rs
│   ├── query/
│   │   ├── combine.rs
│   │   ├── debug.rs
│   │   ├── delete.rs
│   │   ├── helper.rs
│   │   ├── insert.rs
│   │   ├── join.rs
│   │   ├── json.rs
│   │   ├── loader.rs
│   │   ├── mod.rs
│   │   ├── select.rs
│   │   ├── traits.rs
│   │   ├── update.rs
│   │   └── util.rs
│   ├── rbac/
│   │   ├── context.rs
│   │   ├── engine/
│   │   │   ├── loader.rs
│   │   │   ├── mod.rs
│   │   │   ├── permission_request.rs
│   │   │   ├── resource_request.rs
│   │   │   ├── role_hierarchy_impl.rs
│   │   │   └── snapshot.rs
│   │   ├── entity/
│   │   │   ├── mod.rs
│   │   │   ├── permission.rs
│   │   │   ├── resource.rs
│   │   │   ├── role.rs
│   │   │   ├── role_hierarchy.rs
│   │   │   ├── role_permission.rs
│   │   │   ├── user.rs
│   │   │   ├── user_override.rs
│   │   │   └── user_role.rs
│   │   ├── error.rs
│   │   ├── mod.rs
│   │   └── schema.rs
│   ├── schema/
│   │   ├── builder.rs
│   │   ├── entity.rs
│   │   ├── json.rs
│   │   ├── mod.rs
│   │   └── topology.rs
│   ├── tests_cfg/
│   │   ├── cake.rs
│   │   ├── cake_compact.rs
│   │   ├── cake_expanded.rs
│   │   ├── cake_filling.rs
│   │   ├── cake_filling_price.rs
│   │   ├── cake_seaography.rs
│   │   ├── comment.rs
│   │   ├── entity_linked.rs
│   │   ├── filling.rs
│   │   ├── fruit.rs
│   │   ├── indexes.rs
│   │   ├── ingredient.rs
│   │   ├── lunch_set.rs
│   │   ├── lunch_set_expanded.rs
│   │   ├── mod.rs
│   │   ├── post.rs
│   │   ├── post_tag.rs
│   │   ├── profile.rs
│   │   ├── registry.rs
│   │   ├── rust_keyword.rs
│   │   ├── sea_orm_active_enums.rs
│   │   ├── serde_rename.rs
│   │   ├── tag.rs
│   │   ├── user.rs
│   │   └── vendor.rs
│   ├── util.rs
│   ├── value/
│   │   ├── text_uuid.rs
│   │   ├── timestamp.rs
│   │   ├── with_chrono.rs
│   │   └── with_time.rs
│   └── value.rs
└── tests/
    ├── active_enum_tests.rs
    ├── active_model_ex_tests.rs
    ├── arrow_schema_tests.rs
    ├── arrow_tests.rs
    ├── basic.rs
    ├── bits_tests.rs
    ├── byte_primary_key_tests.rs
    ├── collection_tests.rs
    ├── common/
    │   ├── bakery_chain/
    │   │   ├── Readme.md
    │   │   ├── baker.rs
    │   │   ├── bakery.rs
    │   │   ├── cake.rs
    │   │   ├── cakes_bakers.rs
    │   │   ├── customer.rs
    │   │   ├── lineitem.rs
    │   │   ├── mod.rs
    │   │   ├── order.rs
    │   │   ├── schema.rs
    │   │   └── seed_data.rs
    │   ├── bakery_dense/
    │   │   ├── NOTES.md
    │   │   ├── baker.rs
    │   │   ├── bakery.rs
    │   │   ├── cake.rs
    │   │   ├── cakes_bakers.rs
    │   │   ├── customer.rs
    │   │   ├── entities.mermaid
    │   │   ├── lineitem.rs
    │   │   ├── mod.rs
    │   │   ├── order.rs
    │   │   └── prelude.rs
    │   ├── blogger/
    │   │   ├── attachment.rs
    │   │   ├── comment.rs
    │   │   ├── mod.rs
    │   │   ├── post.rs
    │   │   ├── post_tag.rs
    │   │   ├── profile.rs
    │   │   ├── tag.rs
    │   │   ├── user.rs
    │   │   ├── user_follower.rs
    │   │   └── user_mono.rs
    │   ├── features/
    │   │   ├── active_enum.rs
    │   │   ├── active_enum_child.rs
    │   │   ├── active_enum_vec.rs
    │   │   ├── applog.rs
    │   │   ├── binary.rs
    │   │   ├── bits.rs
    │   │   ├── byte_primary_key.rs
    │   │   ├── categories.rs
    │   │   ├── collection.rs
    │   │   ├── collection_expanded.rs
    │   │   ├── custom_active_model.rs
    │   │   ├── dyn_table_name.rs
    │   │   ├── edit_log.rs
    │   │   ├── embedding.rs
    │   │   ├── event_trigger.rs
    │   │   ├── host_network.rs
    │   │   ├── insert_default.rs
    │   │   ├── json_struct.rs
    │   │   ├── json_vec.rs
    │   │   ├── json_vec_derive.rs
    │   │   ├── metadata.rs
    │   │   ├── mod.rs
    │   │   ├── pi.rs
    │   │   ├── repository.rs
    │   │   ├── satellite.rs
    │   │   ├── schema.rs
    │   │   ├── sea_orm_active_enums.rs
    │   │   ├── self_join.rs
    │   │   ├── teas.rs
    │   │   ├── transaction_log.rs
    │   │   ├── uuid_fmt.rs
    │   │   └── value_type.rs
    │   ├── film_store.rs
    │   ├── mod.rs
    │   ├── runtime.rs
    │   ├── sakila/
    │   │   ├── NOTES.md
    │   │   └── entities.mermaid
    │   └── setup/
    │       └── mod.rs
    ├── connection_tests.rs
    ├── crud/
    │   ├── create_baker.rs
    │   ├── create_cake.rs
    │   ├── create_lineitem.rs
    │   ├── create_order.rs
    │   ├── deletes.rs
    │   ├── error.rs
    │   ├── mod.rs
    │   └── updates.rs
    ├── crud_tests.rs
    ├── cursor_tests.rs
    ├── database_executor_tests.rs
    ├── delete_by_id_tests.rs
    ├── derive_iden_tests.rs
    ├── derive_model_tests.rs
    ├── derive_tests.rs
    ├── dyn_table_name_tests.rs
    ├── embedding_tests.rs
    ├── empty_insert_tests.rs
    ├── entity_loader_tests.rs
    ├── enum_primary_key_tests.rs
    ├── event_trigger_tests.rs
    ├── execute_unprepared_tests.rs
    ├── exists_tests.rs
    ├── from_query_result_tests.rs
    ├── host_network_tests.rs
    ├── impl_from_for_active_model.rs
    ├── insert_default_tests.rs
    ├── json_struct_tests.rs
    ├── json_vec_tests.rs
    ├── loader_tests.rs
    ├── multi_select_tests.rs
    ├── paginator_tests.rs
    ├── parallel_tests.rs
    ├── partial_model_nested/
    │   ├── local/
    │   │   ├── mod.rs
    │   │   └── model/
    │   │       ├── bakery.rs
    │   │       ├── mod.rs
    │   │       ├── schema.rs
    │   │       └── worker.rs
    │   ├── main.rs
    │   └── nested_alias.rs
    ├── partial_model_tests.rs
    ├── pi_tests.rs
    ├── query_tests.rs
    ├── raw_sql_tests.rs
    ├── rbac_tests.rs
    ├── relational_tests.rs
    ├── returning_tests.rs
    ├── schema_sync_tests.rs
    ├── self_join_tests.rs
    ├── sequential_op_tests.rs
    ├── sql_err_tests.rs
    ├── stream_tests.rs
    ├── string_primary_key_tests.rs
    ├── text_uuid_tests.rs
    ├── time_crate_tests.rs
    ├── timestamp_tests.rs
    ├── transaction_tests.rs
    ├── type_tests.rs
    ├── upsert_tests.rs
    ├── uuid_fmt_tests.rs
    ├── uuid_tests.rs
    └── value_type_tests.rs

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitattributes
================================================
*.html.tera linguist-language=HTML


================================================
FILE: .github/.well-known/funding-manifest-urls
================================================
https://www.sea-ql.org/funding.json


================================================
FILE: .github/FUNDING.yml
================================================
github: SeaQL

================================================
FILE: .github/ISSUE_TEMPLATE/bug-report.md
================================================
---
name: Bug Report
about: Report a bug or design flaw
title: ""
labels: ""
assignees: ""
type: Bug
---

<!--

Welcome! Thank you for reporting bugs!

First of all, please star our repo. Your support is vital to the continued maintenance of SeaORM.

Want to ask a question? You can reach us via:

- Discord: https://discord.com/invite/uCPdDXzbdv
- GitHub Discussions: https://github.com/SeaQL/sea-orm/discussions/new

Please make sure that you are not asking for a missing feature; a bug is incorrect behavior -
either in the feature specification or implementation. Feature requests should be first raised in discussions.

Please also make sure your description is clear and precise - maintainers don't have access to your
code and can't see what you have seen. Please avoid vague descriptions like "they are different"
or "the program crashes" - in either case, provide exact information.

If you are certain there is a bug, please provide a reproducible example, which helps the investigator
to pin-point the bug and the implementor to verify that a solution is satisfactory. Bug reports without
reproducible example may be closed or dangle forever.

Finally, please search for existing issues and discussions before submission. Feel free to revive old
threads if you have new information to add, but please don't ask for ETA or "+1".

-->

## Description

<!-- Briefly describe the bug -->

## Steps to Reproduce

1. <!-- First step -->
2. <!-- Then -->
3. <!-- And so on -->

### Expected Behavior

<!-- What is expected to happen? -->

### Actual Behavior

<!-- What actually happened? -->

### Reproduces How Often

<!-- Is it always reproducible? -->

### Workarounds

<!-- What experiments have you done to understand / workaround the bug? -->

## Versions

<!-- You can get this information from the output of `cargo tree | grep sea-` from the console. Also, please include the database and OS that you are running. -->


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false
contact_links:
  - name: Q & A
    url: https://github.com/SeaQL/sea-orm/discussions/new?category=q-a
    about: Ask a question or look for help. Try to provide sufficient context, snippets to reproduce and error messages.
  - name: SeaQL Discord Server
    url: https://discord.com/invite/uCPdDXzbdv
    about: Join our Discord server to chat with others in the SeaQL community!
  - name: Professional Support
    url: https://github.com/sponsors/SeaQL
    about: Startup and Enterprise-tier sponsors enjoy direct communication with the SeaQL team and professional support for SeaORM usage, data engineering, and Rust development.

================================================
FILE: .github/ISSUE_TEMPLATE/feature-request.md
================================================
---
name: Feature Request
about: Suggest a new feature for this project
title: ""
labels: ""
assignees: ""
type: Feature
---

<!--

Welcome! Thank you for suggesting features!

First of all, please star our repo. Your support is vital to the continued maintenance of SeaORM.

Want to ask a question? You can reach us via:

- Discord: https://discord.com/invite/uCPdDXzbdv
- GitHub Discussions: https://github.com/SeaQL/sea-orm/discussions/new

Make sure you have a clear feature specification before open an issue. Alternatively, please start an "Idea" thread on GitHub Discussions and let's formulate the solution together.

-->

## Motivation

<!-- what is the use case? what is the expected outcome? -->

## Proposed Solutions

<!-- what are the proposed solutions? how it solve the problem or achieve the goal? -->

## Additional Information

<!-- any other additional information that might be helpful -->


================================================
FILE: .github/workflows/release-bot.yml
================================================
name: Release Bot

on:
  release:
    types: [published]

jobs:
  comment:
    runs-on: ubuntu-latest
    permissions:
      issues: write
      pull-requests: write
    steps:
      - name: Commenting on `${{ github.event.release.tag_name }}` release
        uses: billy1624/release-comment-on-pr@master
        with:
          release-tag: ${{ github.event.release.tag_name }}
          token: ${{ github.token }}
          message: |
            ### :tada: Released In [${releaseTag}](${releaseUrl}) :tada:
            
            Huge thanks for the contribution!
            This feature has now been released, so it's a great time to upgrade.
            Show some love with a ⭐ on our repo, every star counts!


================================================
FILE: .github/workflows/rust.yml
================================================
# GitHub Actions with Conditional Job Running Based on Commit Message
#
# --------------------------------------------------------------------------------
#
# Following jobs will always run
#
#   - `clippy`
#   - `rustfmt`
#   - `taplo`
#   - `test`
#   - `examples`
#
# Following jobs will be run when no keywords were found in commit message)
#
#   - `sqlite`
#   - `mysql`
#   - `mariadb`
#   - `postgres`
#
# Following jobs will be run if keywords `[issues]` were found in commit message
#
#   - Jobs that will always run
#   - `issues`
#
# Following jobs will be run if keywords `[cli]` were found in commit message
#
#   - Jobs that will always run
#   - `cli`
#
# Following jobs will be run if keywords `[sqlite]` were found in commit message
#
#   - Jobs that will always run
#   - `compile`
#   - `sqlite`
#
# Following jobs will be run if keywords `[mysql]` were found in commit message
#
#   - Jobs that will always run
#   - `compile`
#   - `mysql`
#   - `mariadb`
#
# Following jobs will be run if keywords `[postgres]` were found in commit message
#
#   - Jobs that will always run
#   - `compile`
#   - `postgres`

name: tests

on:
  pull_request:
    paths-ignore:
      - "**.md"
      - ".github/ISSUE_TEMPLATE/**"
  push:
    paths-ignore:
      - "**.md"
      - ".github/ISSUE_TEMPLATE/**"
    branches:
      - master
      - 1.*.x
      - 0.*.x
      - pr/**/ci
      - ci-*

concurrency:
  group: ${{ github.workflow }}-${{ github.head_ref || github.ref || github.run_id }}
  cancel-in-progress: true

env:
  CARGO_TERM_COLOR: always
  RUSTC_WRAPPER: sccache
  SCCACHE_GHA_ENABLED: true
  RUSTFLAGS: "-C debuginfo=0"
  CARGO_INCREMENTAL: 0

jobs:
  init:
    name: Init
    runs-on: ubuntu-latest
    outputs:
      run-sqlite: ${{ contains(steps.git-log.outputs.message, '[sqlite]') }}
      run-mysql: ${{ contains(steps.git-log.outputs.message, '[mysql]') }}
      run-postgres: ${{ contains(steps.git-log.outputs.message, '[postgres]') }}
      run-cli: ${{ contains(steps.git-log.outputs.message, '[cli]') }}
      run-issues: ${{ contains(steps.git-log.outputs.message, '[issues]') }}
      run-partial: >-
        ${{
          contains(steps.git-log.outputs.message, '[sqlite]') ||
          contains(steps.git-log.outputs.message, '[mysql]') ||
          contains(steps.git-log.outputs.message, '[postgres]') ||
          contains(steps.git-log.outputs.message, '[cli]') ||
          contains(steps.git-log.outputs.message, '[issues]')
        }}
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - id: git-log
        run: echo "message=$(git log --no-merges -1 --oneline)" >> $GITHUB_OUTPUT

  clippy:
    name: Clippy
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
        with:
          components: clippy
      - uses: actions/cache@v5
        with:
          path: |
            ~/.cargo/registry/index/
            ~/.cargo/registry/cache/
            ~/.cargo/git/db/
          key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.toml') }}
      - uses: mozilla-actions/sccache-action@v0.0.9
      - run: cargo clippy --all -- -D warnings
      - run: cargo clippy --all --features runtime-tokio-native-tls,sqlx-all -- -D warnings
      - run: cargo clippy --manifest-path sea-orm-cli/Cargo.toml -- -D warnings
      - run: cargo clippy --manifest-path sea-orm-migration/Cargo.toml -- -D warnings

  rustfmt:
    name: Rustfmt
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@nightly
        with:
          components: rustfmt
      - run: cargo fmt --all -- --check
      - run: cargo fmt --manifest-path sea-orm-cli/Cargo.toml --all -- --check
      - run: cargo fmt --manifest-path sea-orm-migration/Cargo.toml --all -- --check

  taplo:
    name: Taplo
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
      - uses: mozilla-actions/sccache-action@v0.0.9
      - run: cargo install --locked taplo-cli
      - run: taplo fmt --check 

  compile:
    name: Compile (${{ matrix.label }})
    needs: init
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        include:
          - label: build
            kind: build
          - label: tokio native-tls mysql
            kind: test
            features: sqlx-mysql,runtime-tokio-native-tls
          - label: tokio rustls mysql
            kind: test
            features: sqlx-mysql,runtime-tokio-rustls
          - label: tokio native-tls postgres
            kind: test
            features: sqlx-postgres,runtime-tokio-native-tls
          - label: tokio rustls postgres
            kind: test
            features: sqlx-postgres,runtime-tokio-rustls
          - label: tokio sqlite
            kind: test
            features: sqlx-sqlite,runtime-tokio
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
      - uses: actions/cache@v5
        with:
          path: |
            ~/.cargo/registry/index/
            ~/.cargo/registry/cache/
            ~/.cargo/git/db/
          key: ${{ runner.os }}-cargo-compile-${{ matrix.label }}-${{ hashFiles('**/Cargo.toml') }}
      - uses: mozilla-actions/sccache-action@v0.0.9
      - if: matrix.kind == 'build'
        run: |
          cargo build --no-default-features
          cargo build --no-default-features --features seaography
          cargo build --features rbac,schema-sync
      - if: matrix.kind == 'test'
        run: cargo test --test '*' --features tests-features,${{ matrix.features }} --no-run

  test:
    name: Unit Test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
      - uses: actions/cache@v5
        with:
          path: |
            ~/.cargo/registry/index/
            ~/.cargo/registry/cache/
            ~/.cargo/git/db/
          key: ${{ runner.os }}-cargo-test-${{ hashFiles('**/Cargo.toml') }}
      - uses: mozilla-actions/sccache-action@v0.0.9
      - run: cargo test --workspace --no-run
      - run: cargo test --workspace
      - run: cargo test --lib --features rbac
      - run: cargo test --lib --features entity-registry -- registry
      - run: cargo test --manifest-path sea-orm-cli/Cargo.toml --no-run
      - run: cargo test --manifest-path sea-orm-cli/Cargo.toml

  cli:
    name: CLI
    needs: init
    if: ${{ (needs.init.outputs.run-partial == 'true' && needs.init.outputs.run-cli == 'true') }}
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
      - run: cargo install --path sea-orm-cli --debug

  examples:
    name: Examples
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        path:
          [
            actix_example,
            axum_example,
            basic,
            graphql_example,
            jsonrpsee_example,
            loco_example,
            loco_seaography,
            loco_starter,
            parquet_example,
            poem_example,
            proxy_gluesql_example,
            quickstart,
            react_admin,
            rocket_example,
            rocket_okapi_example,
            salvo_example,
            seaography_example,
            tonic_example,
          ]
    steps:
      - uses: actions/checkout@v4
      - if: ${{ contains(matrix.path, 'tonic_example') }}
        uses: arduino/setup-protoc@v3
      - uses: dtolnay/rust-toolchain@stable
        with:
          components: rustfmt
      - uses: actions/cache@v5
        with:
          path: |
            ~/.cargo/registry/index/
            ~/.cargo/registry/cache/
            ~/.cargo/git/db/
          key: ${{ runner.os }}-cargo-examples-${{ matrix.path }}
      - uses: mozilla-actions/sccache-action@v0.0.9
      - working-directory: ./examples/
        run: |
          find ${{ matrix.path }} -type f -name 'Cargo.toml' -print0 | xargs -t -0 -I {} cargo fmt --manifest-path {} -- --check
          find ${{ matrix.path }} -type f -name 'Cargo.toml' -print0 | xargs -t -0 -I {} cargo update --manifest-path {}
          find ${{ matrix.path }} -type f -name 'Cargo.toml' -print0 | xargs -t -0 -I {} cargo test --manifest-path {}
          ${{'! '}}${{ '[ -d "' }}${{ matrix.path }}${{ '/api" ]' }} || find ${{ matrix.path }}/api -type f -name 'Cargo.toml' -print0 | xargs -t -0 -I {} cargo test --manifest-path {}
      - if: matrix.path == 'quickstart'
        working-directory: ./examples/${{ matrix.path }}
        run: cargo run

  issues-matrix:
    name: Issues Matrix
    needs: init
    if: ${{ (needs.init.outputs.run-partial == 'true' && needs.init.outputs.run-issues == 'true') }}
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - id: set-matrix
        run: echo "path_matrix=$(find issues -type f -name 'Cargo.toml' -printf '%P\0' | jq -Rc '[  split("\u0000") | .[] | "issues/\(.)" ]')" >> $GITHUB_OUTPUT
    outputs:
      path_matrix: ${{ steps.set-matrix.outputs.path_matrix }}

  issues:
    name: Issues
    needs:
      - init
      - issues-matrix
    if: ${{ (needs.init.outputs.run-partial == 'true' && needs.init.outputs.run-issues == 'true') }}
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        path: ${{ fromJson(needs.issues-matrix.outputs.path_matrix) }}
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
      - uses: actions/cache@v5
        with:
          path: |
            ~/.cargo/registry/index/
            ~/.cargo/registry/cache/
            ~/.cargo/git/db/
          key: ${{ runner.os }}-cargo-issue-${{ matrix.path }}
      - uses: mozilla-actions/sccache-action@v0.0.9
      - run: cargo build --manifest-path ${{ matrix.path }}
      - run: cargo test --manifest-path ${{ matrix.path }}

  sqlite:
    name: SQLite
    needs:
      - init
      - compile
    if: >-
      ${{
        needs.init.outputs.run-partial == 'false' ||
        (needs.init.outputs.run-partial == 'true' && needs.init.outputs.run-sqlite == 'true')
      }}
    runs-on: ubuntu-latest
    env:
      DATABASE_URL: "sqlite::memory:"
    strategy:
      fail-fast: false
      matrix:
        runtime: [tokio]
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
      - uses: actions/cache@v5
        with:
          path: |
            ~/.cargo/registry/index/
            ~/.cargo/registry/cache/
            ~/.cargo/git/db/
          key: ${{ runner.os }}-cargo-sqlite-tests-sqlite-${{ hashFiles('**/Cargo.toml') }}
      - uses: mozilla-actions/sccache-action@v0.0.9
      - run: cargo test --test '*' --features tests-features,sqlx-sqlite,runtime-${{ matrix.runtime }} --no-run
      - run: cargo test --test '*' --features tests-features,sqlx-sqlite,runtime-${{ matrix.runtime }}
      - run: cargo test --manifest-path sea-orm-migration/Cargo.toml --test '*' --features sqlx-sqlite,runtime-${{ matrix.runtime }} --no-run
      - run: cargo test --manifest-path sea-orm-migration/Cargo.toml --test '*' --features sqlx-sqlite,runtime-${{ matrix.runtime }}

  rusqlite:
    name: rusqlite
    needs:
      - init
      - compile
    if: >-
      ${{
        needs.init.outputs.run-partial == 'false' ||
        (needs.init.outputs.run-partial == 'true' && needs.init.outputs.run-sqlite == 'true')
      }}
    runs-on: ubuntu-latest
    env:
      DATABASE_URL: "sqlite::memory:"
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
      - uses: actions/cache@v5
        with:
          path: |
            ~/.cargo/registry/index/
            ~/.cargo/registry/cache/
            ~/.cargo/git/db/
          key: ${{ runner.os }}-cargo-sqlite-tests-rusqlite-${{ hashFiles('**/Cargo.toml') }}
      - uses: mozilla-actions/sccache-action@v0.0.9
      - working-directory: ./sea-orm-sync
        run: cargo test --test '*' --features tests-features,rusqlite
      - working-directory: ./sea-orm-sync/examples/quickstart
        run: cargo run
      - working-directory: ./sea-orm-sync/examples/parquet_example
        run: cargo run

  mysql:
    name: MySQL
    needs:
      - init
      - compile
    if: >-
      ${{
        needs.init.outputs.run-partial == 'false' ||
        (needs.init.outputs.run-partial == 'true' && needs.init.outputs.run-mysql == 'true')
      }}
    runs-on: ubuntu-latest
    env:
      DATABASE_URL: "mysql://root:@localhost"
    strategy:
      fail-fast: false
      matrix:
        version: [lts, 5.7]
        runtime: [tokio]
        tls: [native-tls]
    services:
      mysql:
        image: mysql:${{ matrix.version }}
        env:
          MYSQL_HOST: 127.0.0.1
          MYSQL_DB: mysql
          MYSQL_USER: sea
          MYSQL_PASSWORD: sea
          MYSQL_ALLOW_EMPTY_PASSWORD: yes
        ports:
          - "3306:3306"
        options: >-
          --health-cmd="mysqladmin ping"
          --health-interval=10s
          --health-timeout=5s
          --health-retries=3
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
      - uses: actions/cache@v5
        with:
          path: |
            ~/.cargo/registry/index/
            ~/.cargo/registry/cache/
            ~/.cargo/git/db/
          key: ${{ runner.os }}-cargo-mysql-tests-${{ hashFiles('**/Cargo.toml') }}
      - uses: mozilla-actions/sccache-action@v0.0.9
      - run: cargo test --test '*' --features tests-features,sqlx-mysql,runtime-${{ matrix.runtime }}-${{ matrix.tls }} --no-run
      - run: cargo test --test '*' --features tests-features,sqlx-mysql,runtime-${{ matrix.runtime }}-${{ matrix.tls }}
      - run: cargo test --manifest-path sea-orm-migration/Cargo.toml --test '*' --features sqlx-mysql,runtime-${{ matrix.runtime }}-${{ matrix.tls }} --no-run
      - run: cargo test --manifest-path sea-orm-migration/Cargo.toml --test '*' --features sqlx-mysql,runtime-${{ matrix.runtime }}-${{ matrix.tls }}

  mariadb:
    name: MariaDB
    needs:
      - init
      - compile
    if: >-
      ${{
        needs.init.outputs.run-partial == 'false' ||
        (needs.init.outputs.run-partial == 'true' && needs.init.outputs.run-mysql == 'true')
      }}
    runs-on: ubuntu-latest
    env:
      DATABASE_URL: "mysql://root:@localhost"
    strategy:
      fail-fast: false
      matrix:
        version: [lts]
        runtime: [tokio]
        tls: [native-tls]
    services:
      mariadb:
        image: mariadb:${{ matrix.version }}
        env:
          MARIADB_HOST: 127.0.0.1
          MARIADB_DB: mysql
          MARIADB_USER: sea
          MARIADB_PASSWORD: sea
          MARIADB_ALLOW_EMPTY_ROOT_PASSWORD: yes
        ports:
          - "3306:3306"
        options: >-
          --health-cmd="healthcheck.sh
          --connect
          --innodb_initialized"
          --health-interval=10s
          --health-timeout=5s
          --health-retries=3
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
      - uses: actions/cache@v5
        with:
          path: |
            ~/.cargo/registry/index/
            ~/.cargo/registry/cache/
            ~/.cargo/git/db/
          key: ${{ runner.os }}-cargo-mariadb-tests-${{ hashFiles('**/Cargo.toml') }}
      - uses: mozilla-actions/sccache-action@v0.0.9
      - run: cargo test --test '*' --features tests-features,sqlx-mysql,runtime-${{ matrix.runtime }}-${{ matrix.tls }} --no-run
      - run: cargo test --test '*' --features tests-features,sqlx-mysql,runtime-${{ matrix.runtime }}-${{ matrix.tls }}

  postgres:
    name: Postgres
    needs:
      - init
      - compile
    if: >-
      ${{
        needs.init.outputs.run-partial == 'false' ||
        (needs.init.outputs.run-partial == 'true' && needs.init.outputs.run-postgres == 'true')
      }}
    runs-on: ubuntu-latest
    env:
      DATABASE_URL: "postgres://root:root@localhost"
    strategy:
      fail-fast: false
      matrix:
        version: [14, 16]
        runtime: [tokio]
        tls: [native-tls]
    services:
      postgres:
        image: postgres:${{ matrix.version }}
        env:
          POSTGRES_HOST: 127.0.0.1
          POSTGRES_USER: root
          POSTGRES_PASSWORD: root
        ports:
          - "5432:5432"
        options: >-
          --health-cmd pg_isready
          --health-interval 10s
          --health-timeout 5s
          --health-retries 5
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
      - uses: actions/cache@v5
        with:
          path: |
            ~/.cargo/registry/index/
            ~/.cargo/registry/cache/
            ~/.cargo/git/db/
          key: ${{ runner.os }}-postgres-tests-${{ matrix.runtime }}-${{ matrix.tls }}-${{ hashFiles('**/Cargo.toml') }}
      - uses: mozilla-actions/sccache-action@v0.0.9
      - run: cargo test --test '*' --features tests-features,sqlx-postgres,runtime-${{ matrix.runtime }}-${{ matrix.tls }} --no-run
      - run: cargo test --test '*' --features tests-features,sqlx-postgres,runtime-${{ matrix.runtime }}-${{ matrix.tls }}
      - run: cargo test --manifest-path sea-orm-migration/Cargo.toml --test '*' --features sqlx-postgres,runtime-${{ matrix.runtime }}-${{ matrix.tls }} --no-run
      - run: cargo test --manifest-path sea-orm-migration/Cargo.toml --test '*' --features sqlx-postgres,runtime-${{ matrix.runtime }}-${{ matrix.tls }}


================================================
FILE: .gitignore
================================================
target
firedbg
Cargo.lock
*.sublime*
.vscode
.idea/*
*/.idea/*
.env.local
.DS_Store

================================================
FILE: .rustfmt.toml
================================================
format_code_in_doc_comments = true
ignore = [
    # These files are used to test the output of derive macros.
    # Formatting them will cause the tests to fail.
    "sea-orm-codegen/src/tests_cfg",
]


================================================
FILE: .taplo.toml
================================================
include = ["**/*.toml"]

[formatting]
align_entries       = true
allowed_blank_lines = 1
array_auto_collapse = false
indent_string       = '    '
reorder_keys        = true


================================================
FILE: CHANGELOG.md
================================================
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).

## 2.0.0 - pending

### Release Candidates

- [2.0.0-rc.37](changelog/2.0.0-rc.37.md) — ER Diagram Generation
- [2.0.0-rc.36](changelog/2.0.0-rc.36.md) — Per-migration transaction control
- [2.0.0-rc.35](changelog/2.0.0-rc.35.md) — SQLite transaction modes, DeriveIntoActiveModel extensions, Decimal64/Bytes, schema sync fix
- [2.0.0-rc.34](changelog/2.0.0-rc.34.md) — Arrow/Parquet support, `try_from_u64` for DeriveValueType
- [2.0.0-rc.32](changelog/2.0.0-rc.32.md) — `MigratorTrait` with `self`, PostgreSQL `application_name`
- [2.0.0-rc.31](changelog/2.0.0-rc.31.md) — `ne_all`, typed `TextUuid`, COUNT overflow fix
- [2.0.0-rc.30](changelog/2.0.0-rc.30.md) — Maintenance release, `sea-query` bump
- [2.0.0-rc.29](changelog/2.0.0-rc.29.md) — Tracing spans, UUID-as-TEXT, relation filtering, LEFT JOIN fix
- [2.0.0-rc.28](changelog/2.0.0-rc.28.md) — `sqlx-all` in migration, `set_if_not_equals_and`, auto_increment for String/Uuid PKs
- [2.0.0-rc.27](changelog/2.0.0-rc.27.md) — `DeriveValueType` implements `NotU8` for PostgreSQL arrays
- [2.0.0-rc.26](changelog/2.0.0-rc.26.md) — `postgres-use-serial-pk` feature for legacy serial PKs
- [2.0.0-rc.25](changelog/2.0.0-rc.25.md) — Value system restoration, `sea-query` bump
- [2.0.0-rc.24](changelog/2.0.0-rc.24.md) — `sea-query` bump to rc.27
- [2.0.0-rc.23](changelog/2.0.0-rc.23.md) — `DeriveValueType` implements `IntoActiveValue`, remove `NotU8`
- [2.0.0-rc.22](changelog/2.0.0-rc.22.md) — `DatabaseExecutor` unified type, value array refactor
- [2.0.0-rc.21](changelog/2.0.0-rc.21.md) — Rusqlite / `sea-orm-sync` crate, `exists` on PaginatorTrait
- [2.0.0-rc.20](changelog/2.0.0-rc.20.md) — Stringy newtypes, M2M self-ref, nullable columns, bug fixes

### New Features

* Role Based Access Control https://github.com/SeaQL/sea-orm/pull/2683

  1. a hierarchical RBAC engine that is table scoped
      + a user has 1 (and only 1) role
      + a role has a set of permissions on a set of resources
          + permissions here are CRUD operations and resources are tables
          + but the engine is generic so can be used for other things
      + roles have hierarchy, and so can inherit permissions
      + there is a wildcard `*` to grant all permissions or resources
      + individual users can have rules override
  3. a set of Entities to load / store the access control rules to / from database
  4. a query auditor that dissect queries for necessary permissions (implemented in SeaQuery)
  5. integration of RBAC into SeaORM in form of `RestrictedConnection`.
      it implements `ConnectionTrait`, and will audit all queries and perform permission check,
      and reject them accordingly. all Entity operations except raw SQL are supported.
      complex joins, insert select from, and even CTE queries are supported.
```rust
// load rules from database
db_conn.load_rbac().await?;

// admin can create bakery
let db = db_conn.restricted_for(admin)?;
let seaside_bakery = bakery::ActiveModel {
    name: Set("SeaSide Bakery".to_owned()),
    ..Default::default()
};
assert!(Bakery::insert(seaside_bakery).exec(&db).await.is_ok());

// public cannot create bakery
let db = db_conn.restricted_for(public)?;
assert!(matches!(
    Bakery::insert(bakery::ActiveModel::default())
        .exec(&db)
        .await,
    Err(DbErr::AccessDenied { .. })
));
```

* Overhauled `Entity::insert_many`. We've made a number of changes https://github.com/SeaQL/sea-orm/pull/2628
    1. removed APIs that can panic
    2. new helper struct `InsertMany`, `last_insert_id` is now `Option<Value>`
    3. on empty iterator, `None` or `vec![]` is returned on exec operations
    4. `TryInsert` API is unchanged

Previously, `insert_many` shares the same helper struct with `insert_one`, which led to an awkard API.
```rust
let res = Bakery::insert_many(std::iter::empty())
    .on_empty_do_nothing() // <- you need to add this
    .exec(db)
    .await;

assert!(matches!(res, Ok(TryInsertResult::Empty)));
```
`last_insert_id` is now `Option<Value>`:
```rust
struct InsertManyResult<A: ActiveModelTrait>
{
    pub last_insert_id: Option<<PrimaryKey<A> as PrimaryKeyTrait>::ValueType>,
}
```
Which means the awkardness is removed:
```rust
let res = Entity::insert_many::<ActiveModel, _>([]).exec(db).await;

assert_eq!(res?.last_insert_id, None); // insert nothing return None

let res = Entity::insert_many([ActiveModel { id: Set(1) }, ActiveModel { id: Set(2) }])
    .exec(db)
    .await;

assert_eq!(res?.last_insert_id, Some(2)); // insert something return Some
```
Same on conflict API as before:
```rust
let res = Entity::insert_many([ActiveModel { id: Set(3) }, ActiveModel { id: Set(4) }])
    .on_conflict_do_nothing()
    .exec(db)
    .await;

assert!(matches!(conflict_insert, Ok(TryInsertResult::Conflicted)));
```
Exec with returning now returns a `Vec<Model>`, so it feels intuitive:
```rust
assert!(
    Entity::insert_many::<ActiveModel, _>([])
        .exec_with_returning(db)
        .await?
        .is_empty() // no footgun, nice
);

assert_eq!(
    Entity::insert_many([
        ActiveModel {
            id: NotSet,
            value: Set("two".into()),
        }
    ])
    .exec_with_returning(db)
    .await
    .unwrap(),
    [
        Model {
            id: 2,
            value: "two".into(),
        }
    ]
);
```
* Improved utility of `ActiveModel::from_json`. Consider the following Entity https://github.com/SeaQL/sea-orm/pull/2599
```rust
#[derive(Clone, Debug, PartialEq, Eq, DeriveEntityModel, Serialize, Deserialize)]
#[sea_orm(table_name = "cake")]
pub struct Model {
    #[sea_orm(primary_key)]
    pub id: i32,      // <- not nullable
    pub name: String,
}
```
Previously, the following would result in error "missing field `id`":
```rust
assert!(
    cake::ActiveModel::from_json(json!({
        "name": "Apple Pie",
    })).is_err();
);
```
Now, the ActiveModel will be partially filled:
```rust
assert_eq!(
    cake::ActiveModel::from_json(json!({
        "name": "Apple Pie",
    }))
    .unwrap(),
    cake::ActiveModel {
        id: NotSet,
        name: Set("Apple Pie".to_owned()),
    }
);
```
* A full `Model` can now be used as `PartialModel` in nested query https://github.com/SeaQL/sea-orm/pull/2642
```rust
#[derive(DerivePartialModel)]
#[sea_orm(entity = "cake::Entity")]
struct Cake {
    id: i32,
    name: String,
    #[sea_orm(nested)]
    bakery: Option<bakery::Model>,
}

let cake: Cake = cake::Entity::find()
    .left_join(bakery::Entity)
    .order_by_asc(cake::Column::Id)
    .into_partial_model()
    .one(&ctx.db)
    .await?
    .unwrap();

assert_eq!(cake.id, 13);
assert_eq!(cake.name, "Cheesecake");
assert_eq!(
    cake.bakery.unwrap(),
    bakery::Model {
        id: 42,
        name: "cool little bakery".to_string(),
    }
);
```
* Wrapper type derived with `DeriveValueType` can now be used as primary key https://github.com/SeaQL/sea-orm/pull/2643
```rust
#[derive(Clone, Debug, PartialEq, Eq, DeriveEntityModel)]
#[sea_orm(table_name = "my_value_type")]
pub struct Model {
    #[sea_orm(primary_key)]
    pub id: MyInteger,
}

#[derive(Clone, Debug, PartialEq, Eq, DeriveValueType)]
pub struct MyInteger(pub i32);
// only for i8 | i16 | i32 | i64 | u8 | u16 | u32 | u64
```
* You can now define unique keys that span multiple columns in Entity https://github.com/SeaQL/sea-orm/pull/2651
```rust
#[derive(Clone, Debug, PartialEq, Eq, DeriveEntityModel)]
#[sea_orm(table_name = "lineitem")]
pub struct Model {
    #[sea_orm(primary_key)]
    pub id: i32,
    #[sea_orm(unique_key = "item")]
    pub order_id: i32,
    #[sea_orm(unique_key = "item")]
    pub cake_id: i32,
}

let stmts = Schema::new(backend).create_index_from_entity(lineitem::Entity);

assert_eq!(
    stmts[0],
    Index::create()
        .name("idx-lineitem-item")
        .table(lineitem::Entity)
        .col(lineitem::Column::OrderId)
        .col(lineitem::Column::CakeId)
        .unique()
        .take()
);

assert_eq!(
    backend.build(stmts[0]),
    r#"CREATE UNIQUE INDEX "idx-lineitem-item" ON "lineitem" ("order_id", "cake_id")"#
);
```
* Overhauled `ConnectionTrait` API: `execute`, `query_one`, `query_all`, `stream` now takes in SeaQuery statement instead of raw SQL statement https://github.com/SeaQL/sea-orm/pull/2657
```rust
// old
let query: SelectStatement = Entity::find().filter(..).into_query();
let backend = self.db.get_database_backend();
let stmt = backend.build(&query);
let rows = self.db.query_all(stmt).await?;

// new
let query: SelectStatement = Entity::find().filter(..).into_query();
let rows = self.db.query_all(&query).await?;
```
* Added `raw_sql` macro for ergonomic parameter injection
```rust
#[derive(FromQueryResult)]
struct Cake {
    name: String,
    #[sea_orm(nested)]
    bakery: Option<Bakery>,
}

#[derive(FromQueryResult)]
struct Bakery {
    #[sea_orm(alias = "bakery_name")]
    name: String,
}

let cake_ids = [2, 3, 4]; // expanded by the `..` operator

let cake: Option<Cake> = Cake::find_by_statement(raw_sql!(
    Sqlite,
    r#"SELECT "cake"."name", "bakery"."name" AS "bakery_name"
       FROM "cake"
       LEFT JOIN "bakery" ON "cake"."bakery_id" = "bakery"."id"
       WHERE "cake"."id" IN ({..cake_ids})"#
))
.one(db)
.await?;
```
* Added `consolidate` method to `SelectThree`. This output has different shape depending on the topology of the join.
```rust
// Order -> Customer
//       -> Lineitem

let items: Vec<(order::Model, Option<customer::Model>, Option<lineitem::Model>)> =
    order::Entity::find()
        .find_also_related(customer::Entity)
        .find_also_related(lineitem::Entity)
        .order_by_asc(order::Column::Id)
        .order_by_asc(lineitem::Column::Id)
        .all(&ctx.db)
        .await?;

// flat result
assert_eq!(
    items,
    vec![
        (order, Some(customer), Some(line_1)),
        (order, Some(customer), Some(line_2)),
    ]
);

let items: Vec<(order::Model, Vec<customer::Model>, Vec<lineitem::Model>)> =
    order::Entity::find()
        .find_also_related(customer::Entity)
        .find_also_related(lineitem::Entity)
        .order_by_asc(order::Column::Id)
        .order_by_asc(lineitem::Column::Id)
        .consolidate() // <-
        .all(&ctx.db)
        .await?;

// consolidated by order
assert_eq!(
    items,
    vec![(
        order,
        vec![customer],
        vec![line_1, line_2]
    )]
);

// Order -> Lineitem -> Cake
let items: Vec<(order::Model, Option<lineitem::Model>, Option<cake::Model>)> =
    order::Entity::find()
        .find_also_related(lineitem::Entity)
        .and_also_related(cake::Entity)
        .order_by_asc(order::Column::Id)
        .order_by_asc(lineitem::Column::Id)
        .all(&ctx.db)
        .await?;

// flat result
assert_eq!(
    items,
    vec![
        (order, Some(line_1), Some(cake_1)),
        (order, Some(line_2), Some(cake_2)),
    ]
);

let items: Vec<(order::Model, Vec<(lineitem::Model, Vec<cake::Model>)>)> =
    order::Entity::find()
        .find_also_related(lineitem::Entity)
        .and_also_related(cake::Entity)
        .order_by_asc(order::Column::Id)
        .order_by_asc(lineitem::Column::Id)
        .consolidate() // <-
        .all(&ctx.db)
        .await?;

// consolidated by order first, then by line
assert_eq!(
    items,
    vec![(
        order,
        vec![(line_1, vec![cake_1]), (line_2, vec![cake_2])]
    )]
);
```
* Added `Select::has_related`
```rust
// cake -> fruit: find all cakes containing mango
assert_eq!(
    cake::Entity::find()
        .has_related(fruit::Entity, fruit::Column::Name.eq("Mango"))
        .build(DbBackend::Sqlite)
        .to_string(),
    [
        r#"SELECT "cake"."id", "cake"."name" FROM "cake""#,
        r#"WHERE EXISTS(SELECT 1 FROM "fruit""#,
        r#"WHERE "fruit"."name" = 'Mango'"#,
        r#"AND "cake"."id" = "fruit"."cake_id")"#,
    ]
    .join(" ")
);
// cake -> cake_filling -> filling: find all cakes with orange fillings
assert_eq!(
    cake::Entity::find()
        .has_related(filling::Entity, filling::Column::Name.eq("Marmalade"))
        .build(DbBackend::Sqlite)
        .to_string(),
    [
        r#"SELECT "cake"."id", "cake"."name" FROM "cake""#,
        r#"WHERE EXISTS(SELECT 1 FROM "filling""#,
        r#"INNER JOIN "cake_filling" ON "cake_filling"."filling_id" = "filling"."id""#,
        r#"WHERE "filling"."name" = 'Marmalade'"#,
        r#"AND "cake"."id" = "cake_filling"."cake_id")"#,
    ]
    .join(" ")
);
```
* Support self-referencing relations in loader
```rust
#[sea_orm::model]
#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
#[sea_orm(table_name = "staff")]
pub struct Model {
    #[sea_orm(primary_key)]
    pub id: i32,
    pub name: String,
    pub reports_to_id: Option<i32>,
    #[sea_orm(self_ref, relation_enum = "ReportsTo", from = "reports_to_id", to = "id")]
    pub reports_to: HasOne<Entity>,
}

// Entity Loader
let staff = staff::Entity::load()
    .with(staff::Relation::ReportsTo)
    .all(db)
    .await?;

assert_eq!(staff[0].name, "Alan");
assert_eq!(staff[0].reports_to, None);

assert_eq!(staff[1].name, "Ben");
assert_eq!(staff[1].reports_to.as_ref().unwrap().name, "Alan");

assert_eq!(staff[2].name, "Alice");
assert_eq!(staff[2].reports_to.as_ref().unwrap().name, "Alan");

// Model Loader
let staff = staff::Entity::find().all(db).await?;

let reports_to = staff
    .load_self(staff::Entity, staff::Relation::ReportsTo, db)
    .await?;

assert_eq!(staff[0].name, "Alan");
assert_eq!(reports_to[0], None);

assert_eq!(staff[1].name, "Ben");
assert_eq!(reports_to[1].unwrap().name, "Alan");

assert_eq!(staff[2].name, "Alice");
assert_eq!(reports_to[2].unwrap().name, "Alan");
```
* Strongly-typed column https://github.com/SeaQL/sea-orm/pull/2794
```rust
// old
user::Entity::find().filter(user::Column::Name.contains("Bob"))

// new
user::Entity::find().filter(user::COLUMN.name.contains("Bob"))

// compile error: the trait `From<{integer}>` is not implemented for `String`
user::Entity::find().filter(user::COLUMN.name.like(2))
```
* Unix timestamp column type that will be mapped to big integer in database
```rust
#[derive(Clone, Debug, PartialEq, Eq, DeriveEntityModel)]
#[sea_orm(table_name = "access_log")]
pub struct Model {
    .. // with `chrono` crate
    pub ts: ChronoUnixTimestamp,
    pub ms: ChronoUnixTimestampMillis,
    .. // with `time` crate
    pub ts: TimeUnixTimestamp,
    pub ms: TimeUnixTimestampMillis,
}
```
* Nested ActiveModel (ActiveModelEx) and cascade operations https://github.com/SeaQL/sea-orm/pull/2818

    The following operation saves a new set of user + profile + post + tag + post_tag into the database atomically:
```rust
let user = user::ActiveModel::builder()
    .set_name("Bob")
    .set_email("bob@sea-ql.org")
    .set_profile(profile::ActiveModel::builder().set_picture("image.jpg"))
    .add_post(
        post::ActiveModel::builder()
            .set_title("Nice weather")
            .add_tag(tag::ActiveModel::builder().set_tag("sunny")),
    )
    .save(db)
    .await?;
```

### Enhancements

* [sea-orm-cli] Added `--column-extra-derives` https://github.com/SeaQL/sea-orm/pull/2212
* [sea-orm-cli] Added `--big-integer-type=i32` to use i32 for bigint (for SQLite)
* [sea-orm-cli] Fix codegen to not generate relations to filtered entities https://github.com/SeaQL/sea-orm/pull/2913
* [sea-orm-cli] Added `--experimental-preserve-user-modifications` https://github.com/SeaQL/sea-orm/pull/2755 https://github.com/SeaQL/sea-orm/pull/2964
* Added `Model::try_set`
* Added new error variant `BackendNotSupported`. Previously, it panics with e.g. "Database backend doesn't support RETURNING" https://github.com/SeaQL/sea-orm/pull/2630
```rust
let result = cake::Entity::insert_many([])
    .exec_with_returning_keys(db)
    .await;

if db.support_returning() {
    // Postgres and SQLite
    assert_eq!(result.unwrap(), []);
} else {
    // MySQL
    assert!(matches!(result, Err(DbErr::BackendNotSupported { .. })));
}
```
* Added new error variant `PrimaryKeyNotSet`. Previously, it panics with "PrimaryKey is not set" https://github.com/SeaQL/sea-orm/pull/2627
```rust
assert!(matches!(
    Update::one(cake::ActiveModel {
        ..Default::default()
    })
    .exec(&db)
    .await,
    Err(DbErr::PrimaryKeyNotSet { .. })
));
```
* Remove panics in `Schema::create_enum_from_active_enum` https://github.com/SeaQL/sea-orm/pull/2634
```rust
fn create_enum_from_active_enum<A>(&self) -> Option<TypeCreateStatement>
// method can now return None
```
* Added `ColumnTrait::eq_any` as a shorthand for the ` = ANY` operator. Postgres only.
```rust
assert_eq!(
    cake::Entity::find()
        .filter(cake::Column::Id.eq_any(vec![4, 5]))
        .build(DbBackend::Postgres)
        .to_string(),
    r#"SELECT "cake"."id", "cake"."name" FROM "cake" WHERE "cake"."id" = ANY(ARRAY [4,5])"#
);
```
* Added `ActiveModelTrait::try_set`
```rust
pub trait ActiveModelTrait {
    /// old: set the Value of a ActiveModel field, panic if failed
    fn set(&mut self, c: <Self::Entity as EntityTrait>::Column, v: Value) {
        self.try_set(c, v).unwrap_or_else(|e| panic!(..))
    }

    /// new: same as above but non-panicking
    fn try_set(&mut self, c: <Self::Entity as EntityTrait>::Column, v: Value) -> Result<(), DbErr>;
}
```
* `Linked` can now be used in partial select, in case `Related` cannot be defined
```rust
pub struct ToBakery;
impl Linked for ToBakery {
    type FromEntity = super::cake::Entity;
    type ToEntity = super::bakery::Entity;

    fn link(&self) -> Vec<RelationDef> {
        vec![Relation::Bakery.def()]
    }
}

#[derive(Debug, DerivePartialModel)]
#[sea_orm(entity = "cake::Entity", into_active_model)]
struct Cake2 {
    id: i32,
    name: String,
    #[sea_orm(nested, alias = "r0")]
    bakery: Option<Bakery>,
    #[sea_orm(skip)]
    ignore: Ignore,
}

let cake2: Cake2 = cake::Entity::find()
    .left_join_linked(ToBakery)
    .order_by_asc(cake::Column::Id)
    .into_partial_model()
    .one(&ctx.db)
    .await?
    .unwrap();
```
* `RelationDef` now implements `Clone`. `on_condition` is changed to `Arc` but this is a minor breaking change.
* Added `extra` on column attribute:
```rust
#[cfg(feature = "with-rust_decimal")]
#[sea_orm(extra = "CHECK (price > 0)")]
pub price: Decimal,

// results in:
ColumnDef::new("price")
    .decimal()
    .not_null()
    .extra("CHECK (price > 0)"),
```
* Added `ColumnTrait::avg`, in addition to `sum`, `min`, `max` etc
```rust
let average: Decimal = order::Entity::find()
    .select_only()
    .column_as(order::Column::Total.avg(), "avg")
    .into_tuple()
    .one(&ctx.db)
    .await?
    .unwrap();
```
* `SchemaBuilder::sync` can now be used in migrations
```rust
#[async_trait::async_trait]
impl MigrationTrait for Migration {
    async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
        let db = manager.get_connection();

        db.get_schema_builder()
            .register(note::Entity)
            .sync(db)
            .await
    }
}
```
* Allowed None for `max_lifetime` and `idle_timeout` Parameters https://github.com/SeaQL/sea-orm/pull/2748
* Try to parse `u32` in Postgres as `i32` https://github.com/SeaQL/sea-orm/pull/2753
* `DeriveActiveEnum` now also impl `IntoActiveValue` https://github.com/SeaQL/sea-orm/issues/1972
* `DeriveValueType` now also supports any structs that can be converted to / from string https://github.com/SeaQL/sea-orm/issues/2811
```rust
#[derive(Copy, Clone, Debug, PartialEq, Eq, DeriveValueType)]
#[sea_orm(value_type = "String")]
pub struct Tag3 {
    pub i: i64,
}

impl std::fmt::Display for Tag3 {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        write!(f, "{}", self.i)
    }
}

impl std::str::FromStr for Tag3 {
    type Err = std::num::ParseIntError;

    fn from_str(s: &str) -> Result<Self, Self::Err> {
        let i: i64 = s.parse()?;
        Ok(Self { i })
    }
}
```
* Fix `DeriveIntoActiveModel` on `Option<T>` fields https://github.com/SeaQL/sea-orm/pull/2926
```rust
#[derive(Clone, Debug, PartialEq, Eq, DeriveEntityModel)]
#[sea_orm(table_name = "fruit")]
pub struct Model {
    #[sea_orm(primary_key)]
    pub id: i32,
    pub name: String,
    pub cake_id: Option<i32>,
}

#[derive(DeriveIntoActiveModel)]
#[sea_orm(active_model = "<fruit::Entity as EntityTrait>::ActiveModel")]
struct PartialFruit {
    cake_id: Option<i32>,
}

assert_eq!(
    PartialFruit { cake_id: Some(1) }.into_active_model(),
    fruit::ActiveModel { id: NotSet, name: NotSet, cake_id: Set(Some(1)) }
);

assert_eq!(
    PartialFruit { cake_id: None }.into_active_model(),
    fruit::ActiveModel { id: NotSet, name: NotSet, cake_id: NotSet }
);
```
* `FromQueryResult` now supports nullable nested model https://github.com/SeaQL/sea-orm/pull/2845
```rust
#[derive(FromQueryResult)]
struct CakeWithOptionalBakeryModel {
    #[sea_orm(alias = "cake_id")]
    id: i32,
    #[sea_orm(alias = "cake_name")]
    name: String,
    #[sea_orm(nested)]
    bakery: Option<bakery::Model>, // can be null
}
```
* Added `try_from_u64` to `DeriveValueType` https://github.com/SeaQL/sea-orm/pull/2958
```rust
// Test for try_from_u64 attribute with type alias
type UserId = i32;

#[derive(Clone, Debug, PartialEq, Eq, DeriveValueType)]
#[sea_orm(try_from_u64)]
pub struct MyUserId(pub UserId);
```
* Arrow / Parquet support https://github.com/SeaQL/sea-orm/pull/2957
    + Added `ArrowSchema`, `DeriveArrowSchema`
    + Support decimal with different formats
    + Support timestamp with different timezone / resolution
    + Added parquet example

### Breaking Changes

Please read [SeaQuery's breaking changes](https://github.com/SeaQL/sea-query/blob/master/CHANGELOG.md#breaking-changes) as well. But for most compile errors, you can simply add `use sea_orm::ExprTrait;` in scope.
```rust
error[E0599]: no method named `like` found for enum `sea_query::Expr` in the current scope
    |
    |         Expr::col((self.entity_name(), *self)).like(s)
    |
    |     fn like<L>(self, like: L) -> Expr
    |        ---- the method is available for `sea_query::Expr` here
    |
    = help: items from traits can only be used if the trait is in scope
help: trait `ExprTrait` which provides `like` is implemented but not in scope; perhaps you want to import it
    |
 -> + use sea_orm::ExprTrait;
```
```rust
error[E0308]: mismatched types
  --> src/sqlite/discovery.rs:27:57
   |
   |             .and_where(Expr::col(Alias::new("type")).eq("table"))
   |                                                      -- ^^^^^^^ expected `&Expr`, found `&str`
   |                                                      |
   |                                                      arguments to this method are incorrect
   |
   = note: expected reference `&sea_query::Expr`
              found reference `&'static str`
```
```rust
error[E0308]: mismatched types
    |
390 |             Some(Expr::col(Name).eq(PgFunc::any(query.symbol)))
    |                                  -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `&Expr`, found `FunctionCall`
    |                                  |
    |                                  arguments to this method are incorrect
    |
note: method defined here
   --> /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library/core/src/cmp.rs:254:8
```
```rust
error[E0277]: the trait bound `sea_orm::Condition: From<bool>` is not satisfied
    |
367 |         .add_option(option)
    |          ---------- ^^^^^^ the trait `From<bool>` is not implemented for `sea_orm::Condition`
    |          |
    |          required by a bound introduced by this call
    |
    = note: required for `bool` to implement `Into<sea_orm::Condition>`
```

* Removed `runtime-actix` feature flag. It's been an alias of `runtime-tokio` for more than a year, so there should be no impact.
* Enabled `sqlite-use-returning-for-3_35` by default. SQLite `3.35` was released in 2021, it should be the default by now.
* Now implemented `impl<T: ModelTrait + FromQueryResult> PartialModelTrait for T`, there may be a potential conflict https://github.com/SeaQL/sea-orm/pull/2642
* Now `DeriveValueType` will also `TryFromU64` if applicable, there may be a potential conflict https://github.com/SeaQL/sea-orm/pull/2643
* Now `DeriveValueType` also impl `IntoActiveValue` and `NotU8`, there may be a potential conflict
* Added `TryIntoModel` and `Serialize` to trait bounds of `ActiveModel::from_json`. There should be no impact if your models are derived with `DeriveEntityModel` https://github.com/SeaQL/sea-orm/pull/2599
```rust
fn from_json(mut json: serde_json::Value) -> Result<Self, DbErr>
where
    Self: TryIntoModel<<Self::Entity as EntityTrait>::Model>,
    <<Self as ActiveModelTrait>::Entity as EntityTrait>::Model: IntoActiveModel<Self>,
    for<'de> <<Self as ActiveModelTrait>::Entity as EntityTrait>::Model:
        serde::de::Deserialize<'de> + serde::Serialize,
```
* `DerivePartialModel` now implement `FromQueryResult` by default, so there may be a potential conflict. Remove `FromQueryResult` in these cases https://github.com/SeaQL/sea-orm/pull/2653
```rust
error[E0119]: conflicting implementations of trait `sea_orm::FromQueryResult` for type `CakeWithFruit`
  |
> | #[derive(DerivePartialModel, FromQueryResult)]
  |          ------------------  ^^^^^^^^^^^^^^^ conflicting implementation for `CakeWithFruit`
```
* Changed `IdenStatic` and `EntityName` definition https://github.com/SeaQL/sea-orm/pull/2667
```rust
trait IdenStatic {
    fn as_str(&self) -> &'static str; // added static lifetime
}
trait EntityName {
    fn table_name(&self) -> &'static str; // added static lifetime
}
```
* Removed `DeriveCustomColumn` and `default_as_str` https://github.com/SeaQL/sea-orm/pull/2667
```rust
// This is no longer supported:
#[derive(Copy, Clone, Debug, EnumIter, DeriveCustomColumn)]
pub enum Column {
    Id,
    Name,
}

impl IdenStatic for Column {
    fn as_str(&self) -> &str {
        match self {
            Self::Name => "my_name",
            _ => self.default_as_str(),
        }
    }
}

// Do the following instead:
#[derive(Copy, Clone, Debug, EnumIter, DeriveColumn)]
pub enum Column {
    Id,
    #[sea_orm(column_name = "my_name")]
    Name,
}
```
* `execute`, `query_one`, `query_all`, `stream` now takes in SeaQuery statement instead of raw SQL statement. a new set of methods `execute_raw`, `query_one_raw`, `query_all_raw`, `stream_raw` is added https://github.com/SeaQL/sea-orm/pull/2657
```rust
  --> src/executor/paginator.rs:53:38
   |
>  |         let rows = self.db.query_all(stmt).await?;
   |                            --------- ^^^^ expected `&_`, found `Statement`
   |                            |
   |                            arguments to this method are incorrect
   |
   = note: expected reference `&_`
                 found struct `statement::Statement`
```
```rust
let backend = self.db.get_database_backend();
let stmt = backend.build(&query);
// change to:
let rows = self.db.query_all_raw(stmt).await?;
// if the query is a SeaQuery statement, then just do this:
let rows = self.db.query_all(&query).await?; // no need to build query
```
* `DatabaseConnection` is changed from enum to struct. The original enum is moved into `DatabaseConnection::inner`. The new enum is named `DatabaseConnectionType` https://github.com/SeaQL/sea-orm/pull/2671
```rust
error[E0599]: no associated item named `Disconnected` found for struct `db_connection::DatabaseConnection` in the current scope
   --> src/database/db_connection.rs:137:33
    |
>   | pub struct DatabaseConnection {
    | ----------------------------- associated item `Disconnected` not found for this struct
...
>   |             DatabaseConnection::Disconnected => Err(conn_err("Disconnected")),
    |                                 ^^^^^^^^^^^^ associated item not found in `DatabaseConnection`
```
```rust
match conn.inner {
    DatabaseConnectionType::Disconnected => (),
    _ => (),
}
```
* `DeleteOne` and `UpdateOne` no longer implement `QueryFilter` and `QueryTrait`
  directly. Those implementations could expose an incomplete SQL query with an
  incomplete condition that touches too many records. To generate the right
  condition, we must make sure that the primary key is set on the input
  `ActiveModel`. If you need to access the generated SQL query, convert into
  `ValidatedDeleteOne`/`ValidatedUpdateOne` first.
```rust
error[E0599]: no method named `build` found for struct `query::update::UpdateOne` in the current scope
   --> src/entity/column.rs:607:22
    |
  > | /                 Update::one(active_model)
  > | |                     .build(DbBackend::Postgres)
    | |                     -^^^^^ method not found in `UpdateOne<A>`
    | |_____________________|
    |
```
Call the `validate()` method:
```rust
Update::one(active_model)
  + .validate()?
    .build(DbBackend::Postgres)
```
* Removed `DbBackend::get_query_builder()` because `QueryBuilder` is not longer object safe.
```rust
  - fn get_query_builder(&self) -> Box<dyn QueryBuilder>
```
* A number of methods has been removed from `SelectTwoMany`: `into_partial_model`, `into_json`, `stream`. These methods are same as those in `SelectTwo`.
Please use `Cake::find().find_also_related(Fruit).into_json()` instead.
* The `delete_by_id` method has changed to returning `DeleteOne` instead of `DeleteMany`. It doesn't change normal `exec` usage, but would change return type of `exec_with_returning` to `Option<Model>`
```rust
fn delete_by_id<T>(values: T) -> DeleteMany<Self>         // old

fn delete_by_id<T>(values: T) -> ValidatedDeleteOne<Self> // new
```
* `DeriveActiveEnum` now also automatically impl `IntoActiveValue`, if you have a custom impl before, there would be a collision
* `with-bigdecimal` is now removed from default features
* `RuntimeErr::SqlxError` is now held in `Arc` to make `DbErr` clonable and smaller:
```rust
pub enum RuntimeErr {
    SqlxError(Arc<sqlx::error::Error>),
```

### Upgrades

* Upgraded Rust Edition to 2024 https://github.com/SeaQL/sea-orm/pull/2596
* Upgraded `strum` to `0.27`

## 1.1.19 - 2025-11-11

### Enhancements

* Add `find_linked_recursive` method to ModelTrait https://github.com/SeaQL/sea-orm/pull/2480
* Skip drop extension type in fresh https://github.com/SeaQL/sea-orm/pull/2716

### Bug Fixes

* Handle null values in `from_sqlx_*_row_to_proxy_row` functions https://github.com/SeaQL/sea-orm/pull/2744

## 1.1.17 - 2025-10-09

### New Features

* Added `map_sqlx_mysql_opts`, `map_sqlx_postgres_opts`, `map_sqlx_sqlite_opts` to `ConnectOptions` https://github.com/SeaQL/sea-orm/pull/2731
```rust
let mut opt = ConnectOptions::new(url);
opt.map_sqlx_postgres_opts(|pg_opt: PgConnectOptions| {
    pg_opt.ssl_mode(PgSslMode::Require)
});
```
* Added `mariadb-use-returning` to use returning syntax for MariaDB https://github.com/SeaQL/sea-orm/pull/2710
* Released `sea-orm-rocket` 0.6 https://github.com/SeaQL/sea-orm/pull/2732

## 1.1.16 - 2025-09-11

### Bug Fixes

* Fix enum casting in DerivePartialModel https://github.com/SeaQL/sea-orm/pull/2719 https://github.com/SeaQL/sea-orm/pull/2720
```rust
#[derive(DerivePartialModel)]
#[sea_orm(entity = "active_enum::Entity", from_query_result, alias = "zzz")]
struct PartialWithEnumAndAlias {
    #[sea_orm(from_col = "tea")]
    foo: Option<Tea>,
}

let sql = active_enum::Entity::find()
    .into_partial_model::<PartialWithEnumAndAlias>()
    .into_statement(DbBackend::Postgres)
    .sql;

assert_eq!(
    sql,
    r#"SELECT CAST("zzz"."tea" AS "text") AS "foo" FROM "public"."active_enum""#,
);
```

### Enhancements

* [sea-orm-cli] Use tokio (optional) instead of async-std https://github.com/SeaQL/sea-orm/pull/2721

## 1.1.15 - 2025-08-31

### Enhancements

* Allow `DerivePartialModel` to have nested aliases https://github.com/SeaQL/sea-orm/pull/2686
```rust
#[derive(DerivePartialModel)]
#[sea_orm(entity = "bakery::Entity", from_query_result)]
struct Factory {
    id: i32,
    #[sea_orm(from_col = "name")]
    plant: String,
}

#[derive(DerivePartialModel)]
#[sea_orm(entity = "cake::Entity", from_query_result)]
struct CakeFactory {
    id: i32,
    name: String,
    #[sea_orm(nested, alias = "factory")] // <- new
    bakery: Option<Factory>,
}
```
* Add `ActiveModelTrait::try_set` https://github.com/SeaQL/sea-orm/pull/2706
```rust
fn set(&mut self, c: <Self::Entity as EntityTrait>::Column, v: Value);
/// New: a non-panicking version of above
fn try_set(&mut self, c: <Self::Entity as EntityTrait>::Column, v: Value) -> Result<(), DbErr>;
```

### Bug Fixes

* [sea-orm-cli] Fix compilation issue https://github.com/SeaQL/sea-orm/pull/2713

## 1.1.14 - 2025-07-21

### Enhancements

* [sea-orm-cli] Mask sensitive ENV values https://github.com/SeaQL/sea-orm/pull/2658

### Bug Fixes

* `FromJsonQueryResult`: panic on serialization failures https://github.com/SeaQL/sea-orm/pull/2635
```rust
#[derive(Clone, Debug, PartialEq, Deserialize, FromJsonQueryResult)]
pub struct NonSerializableStruct;

impl Serialize for NonSerializableStruct {
    fn serialize<S>(&self, _serializer: S) -> Result<S::Ok, S::Error>
    where
        S: Serializer,
    {
        Err(serde::ser::Error::custom(
            "intentionally failing serialization",
        ))
    }
}

let model = Model {
    json: Some(NonSerializableStruct),
};

let _ = model.into_active_model().insert(&ctx.db).await; // panic here
```

## 1.1.13 - 2025-06-29

### New Features

* [sea-orm-cli] New `--frontend-format` flag to generate entities in pure Rust https://github.com/SeaQL/sea-orm/pull/2631
```rust
// for example, below is the normal (compact) Entity:
use sea_orm::entity::prelude::*;
use serde::{Deserialize, Serialize};

#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, Serialize, Deserialize)]
#[sea_orm(table_name = "cake")]
pub struct Model {
    #[sea_orm(primary_key)]
    #[serde(skip_deserializing)]
    pub id: i32,
    #[sea_orm(column_type = "Text", nullable)]
    pub name: Option<String> ,
}
// this is the generated frontend model, there is no SeaORM dependency:
use serde::{Deserialize, Serialize};

#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct Model {
    #[serde(skip_deserializing)]
    pub id: i32,
    pub name: Option<String> ,
}
```

### Enhancements

* Removed potential panics from `Loader` https://github.com/SeaQL/sea-orm/pull/2637

## 1.1.12 - 2025-05-27

### Enhancements

* Make sea-orm-cli & sea-orm-migration dependencies optional https://github.com/SeaQL/sea-orm/pull/2367
* Relax TransactionError's trait bound for errors to allow `anyhow::Error` https://github.com/SeaQL/sea-orm/pull/2602

### Bug Fixes

* Include custom `column_name` in DeriveColumn `Column::from_str` impl https://github.com/SeaQL/sea-orm/pull/2603
```rust
#[derive(DeriveEntityModel)]
pub struct Model {
    #[sea_orm(column_name = "lAsTnAmE")]
    last_name: String,
}

assert!(matches!(Column::from_str("lAsTnAmE").unwrap(), Column::LastName));
```

## 1.1.11 - 2025-05-07

### Enhancements

* Added `ActiveModelTrait::default_values`
```rust
assert_eq!(
    fruit::ActiveModel::default_values(),
    fruit::ActiveModel {
        id: Set(0),
        name: Set("".into()),
        cake_id: Set(None),
        type_without_default: NotSet,
    },
);
```
* Impl `IntoCondition` for `RelationDef` https://github.com/SeaQL/sea-orm/pull/2587
```rust
// This allows using `RelationDef` directly where sea-query expects an `IntoCondition`
let query = Query::select()
    .from(fruit::Entity)
    .inner_join(cake::Entity, fruit::Relation::Cake.def())
    .to_owned();
```
* Loader: retain only unique key values in the query condition https://github.com/SeaQL/sea-orm/pull/2569
* Add proxy transaction impl https://github.com/SeaQL/sea-orm/pull/2573
* [sea-orm-cli] Fix `PgVector` codegen https://github.com/SeaQL/sea-orm/pull/2589

### Bug fixes

* Quote type properly in `AsEnum` casting https://github.com/SeaQL/sea-orm/pull/2570
```rust
assert_eq!(
    lunch_set::Entity::find()
        .select_only()
        .column(lunch_set::Column::Tea)
        .build(DbBackend::Postgres)
        .to_string(),
    r#"SELECT CAST("lunch_set"."tea" AS "text") FROM "lunch_set""#
    // "text" is now quoted; will work for "text"[] as well
);
```
* Fix unicode string enum https://github.com/SeaQL/sea-orm/pull/2218

### Upgrades

* Upgrade `heck` to `0.5` https://github.com/SeaQL/sea-orm/pull/2218
* Upgrade `sea-query` to `0.32.5`
* Upgrade `sea-schema` to `0.16.2`

## 1.1.10 - 2025-04-14

### Upgrades

* Upgrade sqlx to 0.8.4 https://github.com/SeaQL/sea-orm/pull/2562

## 1.1.9 - 2025-04-14

### Enhancements

* [sea-orm-macros] Use fully-qualified syntax for ActiveEnum associated type https://github.com/SeaQL/sea-orm/pull/2552
* Accept `LikeExpr` in `like` and `not_like` https://github.com/SeaQL/sea-orm/pull/2549

### Bug fixes

* Check if url is well-formed before parsing https://github.com/SeaQL/sea-orm/pull/2558
* `QuerySelect::column_as` method cast ActiveEnum column https://github.com/SeaQL/sea-orm/pull/2551

### House keeping

* Remove redundant `Expr::expr` from internal code https://github.com/SeaQL/sea-orm/pull/2554

## 1.1.8 - 2025-03-30

### New Features

* Implement `DeriveValueType` for enum strings
```rust
#[derive(DeriveValueType)]
#[sea_orm(value_type = "String")]
pub enum Tag {
    Hard,
    Soft,
}

// `from_str` defaults to `std::str::FromStr::from_str`
impl std::str::FromStr for Tag {
    type Err = sea_orm::sea_query::ValueTypeErr;
    fn from_str(s: &str) -> Result<Self, Self::Err> { .. }
}

// `to_str` defaults to `std::string::ToString::to_string`.
impl std::fmt::Display for Tag {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { .. }
}

// you can override from_str and to_str with custom functions
#[derive(DeriveValueType)]
#[sea_orm(value_type = "String", from_str = "Tag::from_str", to_str = "Tag::to_str")]
pub enum Tag {
    Color,
    Grey,
}

impl Tag {
    fn from_str(s: &str) -> Result<Self, ValueTypeErr> { .. }

    fn to_str(&self) -> &'static str { .. }
}
```
* Support Postgres Ipnetwork (under feature flag `with-ipnetwork`) https://github.com/SeaQL/sea-orm/pull/2395
```rust
// Model
#[derive(Clone, Debug, PartialEq, Eq, DeriveEntityModel)]
#[sea_orm(table_name = "host_network")]
pub struct Model {
    #[sea_orm(primary_key)]
    pub id: i32,
    pub ipaddress: IpNetwork,
    #[sea_orm(column_type = "Cidr")]
    pub network: IpNetwork,
}

// Schema
sea_query::Table::create()
    .table(host_network::Entity)
    .col(ColumnDef::new(host_network::Column::Id).integer().not_null().auto_increment().primary_key())
    .col(ColumnDef::new(host_network::Column::Ipaddress).inet().not_null())
    .col(ColumnDef::new(host_network::Column::Network).cidr().not_null())
    .to_owned();

// CRUD
host_network::ActiveModel {
    ipaddress: Set(IpNetwork::new(Ipv6Addr::new(..))),
    network: Set(IpNetwork::new(Ipv4Addr::new(..))),
    ..Default::default()
}
```

### Enhancements

* Added `try_getable_postgres_array!(Vec<u8>)` (to support `bytea[]`) https://github.com/SeaQL/sea-orm/pull/2503

### Bug fixes

* [sea-orm-codegen] Support postgres array in expanded format https://github.com/SeaQL/sea-orm/pull/2545

### House keeping

* Replace `once_cell` crate with `std` equivalent https://github.com/SeaQL/sea-orm/pull/2524
(available since rust 1.80)

## 1.1.7 - 2025-03-02

### New Features

* Support nested entities in `FromQueryResult` https://github.com/SeaQL/sea-orm/pull/2508
```rust
#[derive(FromQueryResult)]
struct Cake {
    id: i32,
    name: String,
    #[sea_orm(nested)]
    bakery: Option<CakeBakery>,
}

#[derive(FromQueryResult)]
struct CakeBakery {
    #[sea_orm(from_alias = "bakery_id")]
    id: i32,
    #[sea_orm(from_alias = "bakery_name")]
    title: String,
}

let cake: Cake = cake::Entity::find()
    .select_only()
    .column(cake::Column::Id)
    .column(cake::Column::Name)
    .column_as(bakery::Column::Id, "bakery_id")
    .column_as(bakery::Column::Name, "bakery_name")
    .left_join(bakery::Entity)
    .order_by_asc(cake::Column::Id)
    .into_model()
    .one(&ctx.db)
    .await?
    .unwrap();

assert_eq!(
    cake,
    Cake {
        id: 1,
        name: "Cake".to_string(),
        bakery: Some(CakeBakery {
            id: 20,
            title: "Bakery".to_string(),
        })
    }
);
```
* Support nested entities in `DerivePartialModel` https://github.com/SeaQL/sea-orm/pull/2508
```rust
#[derive(DerivePartialModel)] // FromQueryResult is no longer needed
#[sea_orm(entity = "cake::Entity", from_query_result)]
struct Cake {
    id: i32,
    name: String,
    #[sea_orm(nested)]
    bakery: Option<Bakery>,
}

#[derive(DerivePartialModel)]
#[sea_orm(entity = "bakery::Entity", from_query_result)]
struct Bakery {
    id: i32,
    #[sea_orm(from_col = "Name")]
    title: String,
}

// same as previous example, but without the custom selects
let cake: Cake = cake::Entity::find()
    .left_join(bakery::Entity)
    .order_by_asc(cake::Column::Id)
    .into_partial_model()
    .one(&ctx.db)
    .await?
    .unwrap();

assert_eq!(
    cake,
    Cake {
        id: 1,
        name: "Cake".to_string(),
        bakery: Some(CakeBakery {
            id: 20,
            title: "Bakery".to_string(),
        })
    }
);
```
* Derive also `IntoActiveModel` with `DerivePartialModel` https://github.com/SeaQL/sea-orm/pull/2517
```rust
#[derive(DerivePartialModel)]
#[sea_orm(entity = "cake::Entity", into_active_model)]
struct Cake {
    id: i32,
    name: String,
}

assert_eq!(
    Cake {
        id: 12,
        name: "Lemon Drizzle".to_owned(),
    }
    .into_active_model(),
    cake::ActiveModel {
        id: Set(12),
        name: Set("Lemon Drizzle".to_owned()),
        ..Default::default()
    }
);
```
* Added `SelectThree` https://github.com/SeaQL/sea-orm/pull/2518
```rust
// Order -> (many) Lineitem -> Cake
let items: Vec<(order::Model, Option<lineitem::Model>, Option<cake::Model>)> =
    order::Entity::find()
        .find_also_related(lineitem::Entity)
        .and_also_related(cake::Entity)
        .order_by_asc(order::Column::Id)
        .order_by_asc(lineitem::Column::Id)
        .all(&ctx.db)
        .await?;
```

### Enhancements

* Support complex type path in `DeriveIntoActiveModel` https://github.com/SeaQL/sea-orm/pull/2517
```rust
#[derive(DeriveIntoActiveModel)]
#[sea_orm(active_model = "<fruit::Entity as EntityTrait>::ActiveModel")]
struct Fruit {
    cake_id: Option<Option<i32>>,
}
```
* Added `DatabaseConnection::close_by_ref` https://github.com/SeaQL/sea-orm/pull/2511
```rust
pub async fn close(self) -> Result<(), DbErr> { .. } // existing
pub async fn close_by_ref(&self) -> Result<(), DbErr> { .. } // new
```

### House Keeping

* Cleanup legacy `ActiveValue::Set` https://github.com/SeaQL/sea-orm/pull/2515

## 1.1.6 - 2025-02-24

### New Features

* Support PgVector (under feature flag `postgres-vector`) https://github.com/SeaQL/sea-orm/pull/2500
```rust
// Model
#[derive(Clone, Debug, PartialEq, DeriveEntityModel)]
#[sea_orm(table_name = "image_model")]
pub struct Model {
    #[sea_orm(primary_key, auto_increment = false)]
    pub id: i32,
    pub embedding: PgVector,
}

// Schema
sea_query::Table::create()
    .table(image_model::Entity.table_ref())
    .col(ColumnDef::new(Column::Id).integer().not_null().primary_key())
    .col(ColumnDef::new(Column::Embedding).vector(None).not_null())
    ..

// Insert
ActiveModel {
    id: NotSet,
    embedding: Set(PgVector::from(vec![1., 2., 3.])),
}
.insert(db)
.await?
```
* Added `Insert::exec_with_returning_keys` & `Insert::exec_with_returning_many` (Postgres only)
```rust
assert_eq!(
    Entity::insert_many([
        ActiveModel { id: NotSet, name: Set("two".into()) },
        ActiveModel { id: NotSet, name: Set("three".into()) },
    ])
    .exec_with_returning_many(db)
    .await
    .unwrap(),
    [
        Model { id: 2, name: "two".into() },
        Model { id: 3, name: "three".into() },
    ]
);

assert_eq!(
    cakes_bakers::Entity::insert_many([
        cakes_bakers::ActiveModel {
            cake_id: Set(1),
            baker_id: Set(2),
        },
        cakes_bakers::ActiveModel {
            cake_id: Set(2),
            baker_id: Set(1),
        },
    ])
    .exec_with_returning_keys(db)
    .await
    .unwrap(),
    [(1, 2), (2, 1)]
);
```
* Added `DeleteOne::exec_with_returning` & `DeleteMany::exec_with_returning` https://github.com/SeaQL/sea-orm/pull/2432

### Enhancements

* Expose underlying row types (e.g. `sqlx::postgres::PgRow`) https://github.com/SeaQL/sea-orm/pull/2265
* [sea-orm-cli] Added `acquire-timeout` option https://github.com/SeaQL/sea-orm/pull/2461
* [sea-orm-cli] Added `with-prelude` option https://github.com/SeaQL/sea-orm/pull/2322
* [sea-orm-cli] Added `impl-active-model-behavior` option https://github.com/SeaQL/sea-orm/pull/2487

### Bug Fixes

* Fixed `seaography::register_active_enums` macro https://github.com/SeaQL/sea-orm/pull/2475

### House keeping

* Remove `futures` crate, replace with `futures-util` https://github.com/SeaQL/sea-orm/pull/2466

## 1.1.5 - 2025-02-14

### New Features

* Added `Schema::json_schema_from_entity` to construct a schema description in json for the given Entity

## 1.1.4 - 2025-01-10

### Enhancements

* Allow modifying the connection in migrations https://github.com/SeaQL/sea-orm/pull/2397
* `DeriveRelatedEntity` proc_macro use `async-graphql` re-exported by `seaography` https://github.com/SeaQL/sea-orm/pull/2469

## 1.1.3 - 2024-12-24

### New Features

* [sea-orm-codegen] register seaography entity modules & active enums https://github.com/SeaQL/sea-orm/pull/2403
```rust
pub mod prelude;

pub mod sea_orm_active_enums;

pub mod baker;
pub mod bakery;
pub mod cake;
pub mod cakes_bakers;
pub mod customer;
pub mod lineitem;
pub mod order;

seaography::register_entity_modules!([
    baker,
    bakery,
    cake,
    cakes_bakers,
    customer,
    lineitem,
    order,
]);

seaography::register_active_enums!([
    sea_orm_active_enums::Tea,
    sea_orm_active_enums::Color,
]);
```

### Enhancements

* Insert many allow active models to have different column set https://github.com/SeaQL/sea-orm/pull/2433
```rust
// this previously panics
let apple = cake_filling::ActiveModel {
    cake_id: ActiveValue::set(2),
    filling_id: ActiveValue::NotSet,
};
let orange = cake_filling::ActiveModel {
    cake_id: ActiveValue::NotSet,
    filling_id: ActiveValue::set(3),
};
assert_eq!(
    Insert::<cake_filling::ActiveModel>::new()
        .add_many([apple, orange])
        .build(DbBackend::Postgres)
        .to_string(),
    r#"INSERT INTO "cake_filling" ("cake_id", "filling_id") VALUES (2, NULL), (NULL, 3)"#,
);
```
* [sea-orm-cli] Added `MIGRATION_DIR` environment variable https://github.com/SeaQL/sea-orm/pull/2419
* Added `ColumnDef::is_unique` https://github.com/SeaQL/sea-orm/pull/2401
* Postgres: quote schema in `search_path` https://github.com/SeaQL/sea-orm/pull/2436

### Bug Fixes

* MySQL: fix transaction isolation level not respected when used with access mode https://github.com/SeaQL/sea-orm/pull/2450

## 1.1.2 - 2024-12-02

### Enhancements

* Added `ColumnTrait::enum_type_name()` to signify enum types https://github.com/SeaQL/sea-orm/pull/2415
* Added `DbBackend::boolean_value()` for database dependent boolean value https://github.com/SeaQL/sea-orm/pull/2415

## 1.1.1 - 2024-11-04

### Enhancements

* [sea-orm-macros] `impl From<Model> for ActiveModel` instead of `impl From<<Entity as sea_orm::EntityTrait>::Model> for ActiveModel` https://github.com/SeaQL/sea-orm/pull/2349.
Now the following can compile:
```rust
use sea_orm::{tests_cfg::cake, Set};

struct Cake {
    id: i32,
    name: String,
}

impl From<Cake> for cake::ActiveModel {
    fn from(value: Cake) -> Self {
        Self {
            id: Set(value.id),
            name: Set(value.name),
        }
    }
}
```

## 1.1.0 - 2024-10-15

### Versions

+ `1.1.0-rc.1`: 2024-08-09
+ `1.1.0-rc.2`: 2024-10-04
+ `1.1.0-rc.3`: 2024-10-08

### Enhancements

* [sea-orm-macros] Call `EnumIter::get` using fully qualified syntax https://github.com/SeaQL/sea-orm/pull/2321
* Construct `DatabaseConnection` directly from `sqlx::PgPool`, `sqlx::SqlitePool` and `sqlx::MySqlPool` https://github.com/SeaQL/sea-orm/pull/2348
* [sea-orm-migration] Add `pk_uuid` schema helper https://github.com/SeaQL/sea-orm/pull/2329
* [sea-orm-migration] Allow `custom` and `custom_null` schema helper to take column name and alias of different `IntoIden` types https://github.com/SeaQL/sea-orm/pull/2326
* Add `ColumnDef::get_column_default` getter https://github.com/SeaQL/sea-orm/pull/2387

### Upgrades

* Upgrade `sqlx` to `0.8.2` https://github.com/SeaQL/sea-orm/pull/2305, https://github.com/SeaQL/sea-orm/pull/2371
* Upgrade `bigdecimal` to `0.4` https://github.com/SeaQL/sea-orm/pull/2305
* Upgrade `sea-query` to `0.32.0-rc` https://github.com/SeaQL/sea-orm/pull/2305
* Upgrade `sea-query-binder` to `0.7.0-rc` https://github.com/SeaQL/sea-orm/pull/2305
* Upgrade `sea-schema` to `0.16.0-rc` https://github.com/SeaQL/sea-orm/pull/2305
* Upgrade `ouroboros` to `0.18` https://github.com/SeaQL/sea-orm/pull/2353

### House keeping

* Fix typos https://github.com/SeaQL/sea-orm/pull/2360
* Update documentations https://github.com/SeaQL/sea-orm/pull/2345

## 1.0.1 - 2024-08-26

### New Features

* Added `ConnectOptions::connect_lazy` for creating DB connection pools without establishing connections up front https://github.com/SeaQL/sea-orm/pull/2268

### Breaking Changes

* Changed `ProxyDatabaseTrait` methods to async. It's a breaking change, but it should have been part of the 1.0 release.
    The feature is behind the feature guard `proxy`, and we believe it shouldn't impact majority of users.
    https://github.com/SeaQL/sea-orm/pull/2278

### Bug Fixes

* [sea-orm-codegen] Fix `ColumnType` to Rust type resolution https://github.com/SeaQL/sea-orm/pull/2313

## 1.0.0 - 2024-08-02

### Versions

+ `1.0.0-rc.1`: 2024-02-06
+ `1.0.0-rc.2`: 2024-03-15
+ `1.0.0-rc.3`: 2024-03-26
+ `1.0.0-rc.4`: 2024-05-13
+ `1.0.0-rc.5`: 2024-05-29
+ `1.0.0-rc.6`: 2024-06-19
+ `1.0.0-rc.7`: 2024-06-25

### New Features

* Introduce `PrimaryKeyArity` with `ARITY` constant https://github.com/SeaQL/sea-orm/pull/2185
```rust
fn get_arity_of<E: EntityTrait>() -> usize {
    E::PrimaryKey::iter().count() // before; runtime
    <<E::PrimaryKey as PrimaryKeyTrait>::ValueType as PrimaryKeyArity>::ARITY // now; compile-time
}
```
* Associate `ActiveModel` to `EntityTrait` https://github.com/SeaQL/sea-orm/pull/2186
* [sea-orm-macros] Added `rename_all` attribute to `DeriveEntityModel` & `DeriveActiveEnum` https://github.com/SeaQL/sea-orm/pull/2170
```rust
#[derive(DeriveEntityModel)]
#[sea_orm(table_name = "user", rename_all = "camelCase")]
pub struct Model {
    #[sea_orm(primary_key)]
    id: i32,
    first_name: String, // firstName
    #[sea_orm(column_name = "lAsTnAmE")]
    last_name: String, // lAsTnAmE
}

#[derive(EnumIter, DeriveActiveEnum)]
#[sea_orm(rs_type = "String", db_type = "String(StringLen::None)", rename_all = "camelCase")]
pub enum TestEnum {
    DefaultVariant, // defaultVariant
    #[sea_orm(rename = "kebab-case")]
    VariantKebabCase, // variant-kebab-case
    #[sea_orm(rename = "snake_case")]
    VariantSnakeCase, // variant_snake_case
    #[sea_orm(string_value = "CuStOmStRiNgVaLuE")]
    CustomStringValue, // CuStOmStRiNgVaLuE
}
```
* [sea-orm-migration] schema helper https://github.com/SeaQL/sea-orm/pull/2099
```rust
// Remember to import `sea_orm_migration::schema::*`
use sea_orm_migration::{prelude::*, schema::*};

#[derive(DeriveMigrationName)]
pub struct Migration;

#[async_trait::async_trait]
impl MigrationTrait for Migration {
    async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
        manager
            .create_table(
                Table::create()
                    .table(Users::Table)
                    .if_not_exists()
                    .col(pk_auto(Users::Id)) // Primary key with auto-increment
                    .col(uuid(Users::Pid)) // UUID column
                    .col(string_uniq(Users::Email)) // String column with unique constraint
                    .col(string(Users::Password)) // String column
                    .col(string(Users::ApiKey).unique_key())
                    .col(string(Users::Name))
                    .col(string_null(Users::ResetToken)) // Nullable string column
                    .col(timestamp_null(Users::ResetSentAt)) // Nullable timestamp column
                    .col(string_null(Users::EmailVerificationToken))
                    .col(timestamp_null(Users::EmailVerificationSentAt))
                    .col(timestamp_null(Users::EmailVerifiedAt))
                    .to_owned(),
            )
            .await
    }

    // ...
}
```

### Enhancements

* Added non-TLS runtime https://github.com/SeaQL/sea-orm/pull/2256
* Added `QuerySelect::tbl_col_as`
* Added `Insert::on_conflict_do_nothing` https://github.com/SeaQL/sea-orm/pull/2244
* Migration schema nullable column set NULL explicitly https://github.com/SeaQL/sea-orm/pull/2255
* Added `ActiveValue::set_if_not_equals()` https://github.com/SeaQL/sea-orm/pull/2194
* Added `ActiveValue::try_as_ref()` https://github.com/SeaQL/sea-orm/pull/2197
* Added `QuerySelect::order_by_with_nulls` https://github.com/SeaQL/sea-orm/pull/2228
* Expose `get_xxx_connection_pool` by default https://github.com/SeaQL/sea-orm/pull/2233
* Added `QueryResult::column_names` https://github.com/SeaQL/sea-orm/pull/2148
* [sea-orm-macro] Add `@generated` in generated code https://github.com/SeaQL/sea-orm/pull/2199
* [sea-orm-macro] Qualify traits in `DeriveActiveModel` macro https://github.com/SeaQL/sea-orm/pull/1665
* [sea-orm-cli] Fix `migrate generate` on empty `mod.rs` files https://github.com/SeaQL/sea-orm/pull/2064
* `DerivePartialModel` macro attribute `entity` now supports `syn::Type` https://github.com/SeaQL/sea-orm/pull/2137
```rust
#[derive(DerivePartialModel)]
#[sea_orm(entity = "<entity::Model as ModelTrait>::Entity")]
struct EntityNameNotAIdent {
    #[sea_orm(from_col = "foo2")]
    _foo: i32,
    #[sea_orm(from_col = "bar2")]
    _bar: String,
}
```
* Added `RelationDef::from_alias()` https://github.com/SeaQL/sea-orm/pull/2146
```rust
let cf = Alias::new("cf");

assert_eq!(
    cake::Entity::find()
        .join_as(
            JoinType::LeftJoin,
            cake_filling::Relation::Cake.def().rev(),
            cf.clone()
        )
        .join(
            JoinType::LeftJoin,
            cake_filling::Relation::Filling.def().from_alias(cf)
        )
        .build(DbBackend::MySql)
        .to_string(),
    [
        "SELECT `cake`.`id`, `cake`.`name` FROM `cake`",
        "LEFT JOIN `cake_filling` AS `cf` ON `cake`.`id` = `cf`.`cake_id`",
        "LEFT JOIN `filling` ON `cf`.`filling_id` = `filling`.`id`",
    ]
    .join(" ")
);
```

### Bug Fixes

* Set schema search path in Postgres without enclosing single quote https://github.com/SeaQL/sea-orm/pull/2241
* [sea-orm-cli] Generate `has_one` relation for foreign key of unique index / constraint https://github.com/SeaQL/sea-orm/pull/2254

### Breaking changes

* Renamed `ConnectOptions::pool_options()` to `ConnectOptions::sqlx_pool_options()` https://github.com/SeaQL/sea-orm/pull/2145
* Made `sqlx_common` private, hiding `sqlx_error_to_xxx_err` https://github.com/SeaQL/sea-orm/pull/2145
* Rework SQLite type mappings https://github.com/SeaQL/sea-orm/pull/2077, https://github.com/SeaQL/sea-orm/pull/2078

### Upgrades

* Upgrade `time` to `0.3.36` https://github.com/SeaQL/sea-orm/pull/2267
* Upgrade `strum` to `0.26` https://github.com/SeaQL/sea-orm/pull/2088
* Upgrade `sea-schema` to `0.15.0`
* Upgrade `sea-query-binder` to `0.6.0`
* Upgrade `sea-query` to `0.31.0`

### House keeping

* Reduce warnings in integration tests https://github.com/SeaQL/sea-orm/pull/2177
* Improved Actix example to return 404 not found on unexpected inputs https://github.com/SeaQL/sea-orm/pull/2140
* Re-enable `rocket_okapi` example https://github.com/SeaQL/sea-orm/pull/2136

## 1.0.0-rc.7 - 2024-06-25

### Upgrades

* Upgrade `sea-query-binder` to `0.6.0-rc.4` https://github.com/SeaQL/sea-orm/pull/2267
* Upgrade `time` to `0.3.36` https://github.com/SeaQL/sea-orm/pull/2267

## 1.0.0-rc.6 - 2024-06-19

### Enhancements

* Added non-TLS runtime https://github.com/SeaQL/sea-orm/pull/2256
* Added `QuerySelect::tbl_col_as`
* Added `Insert::on_conflict_do_nothing` https://github.com/SeaQL/sea-orm/pull/2244
* Migration schema nullable column set NULL explicitly https://github.com/SeaQL/sea-orm/pull/2255

### Bug Fixes

* Set schema search path in Postgres without enclosing single quote https://github.com/SeaQL/sea-orm/pull/2241
* [sea-orm-cli] Generate `has_one` relation for foreign key of unique index / constraint https://github.com/SeaQL/sea-orm/pull/2254

## 1.0.0-rc.5 - 2024-05-29

### New Features

* Introduce `PrimaryKeyArity` with `ARITY` constant https://github.com/SeaQL/sea-orm/pull/2185
```rust
fn get_arity_of<E: EntityTrait>() -> usize {
    E::PrimaryKey::iter().count() // before; runtime
    <<E::PrimaryKey as PrimaryKeyTrait>::ValueType as PrimaryKeyArity>::ARITY // now; compile-time
}
```
* Associate `ActiveModel` to `EntityTrait` https://github.com/SeaQL/sea-orm/pull/2186
* [sea-orm-macros] Added `rename_all` attribute to `DeriveEntityModel` & `DeriveActiveEnum` https://github.com/SeaQL/sea-orm/pull/2170
```rust
#[derive(DeriveEntityModel)]
#[sea_orm(table_name = "user", rename_all = "camelCase")]
pub struct Model {
    #[sea_orm(primary_key)]
    id: i32,
    first_name: String, // firstName
    #[sea_orm(column_name = "lAsTnAmE")]
    last_name: String, // lAsTnAmE
}

#[derive(EnumIter, DeriveActiveEnum)]
#[sea_orm(rs_type = "String", db_type = "String(StringLen::None)", rename_all = "camelCase")]
pub enum TestEnum {
    DefaultVariant, // defaultVariant
    #[sea_orm(rename = "kebab-case")]
    VariantKebabCase, // variant-kebab-case
    #[sea_orm(rename = "snake_case")]
    VariantSnakeCase, // variant_snake_case
    #[sea_orm(string_value = "CuStOmStRiNgVaLuE")]
    CustomStringValue, // CuStOmStRiNgVaLuE
}
```

### Enhancements

* Added `ActiveValue::set_if_not_equals()` https://github.com/SeaQL/sea-orm/pull/2194
* Added `ActiveValue::try_as_ref()` https://github.com/SeaQL/sea-orm/pull/2197
* Added `QuerySelect::order_by_with_nulls` https://github.com/SeaQL/sea-orm/pull/2228
* Expose `get_xxx_connection_pool` by default https://github.com/SeaQL/sea-orm/pull/2233

## 1.0.0-rc.4 - 2024-05-13

### Enhancements

* Added `QueryResult::column_names` https://github.com/SeaQL/sea-orm/pull/2148
* [sea-orm-macro] Add `@generated` in generated code https://github.com/SeaQL/sea-orm/pull/2199

### Upgrades

* Upgrade `sea-query` to `0.31.0-rc.6`
* Upgrade `sea-schema` to `0.15.0-rc.6`

### House Keeping

* Reduce warnings in integration tests https://github.com/SeaQL/sea-orm/pull/2177

## 1.0.0-rc.3 - 2024-03-26

### Enhancements

* [sea-orm-macro] Qualify traits in `DeriveActiveModel` macro https://github.com/SeaQL/sea-orm/pull/1665

## 1.0.0-rc.2 - 2024-03-15

### Breaking Changes

* Renamed `ConnectOptions::pool_options()` to `ConnectOptions::sqlx_pool_options()` https://github.com/SeaQL/sea-orm/pull/2145
* Made `sqlx_common` private, hiding `sqlx_error_to_xxx_err` https://github.com/SeaQL/sea-orm/pull/2145

### Enhancements

* [sea-orm-cli] Fix `migrate generate` on empty `mod.rs` files https://github.com/SeaQL/sea-orm/pull/2064
* `DerivePartialModel` macro attribute `entity` now supports `syn::Type` https://github.com/SeaQL/sea-orm/pull/2137
```rust
#[derive(DerivePartialModel)]
#[sea_orm(entity = "<entity::Model as ModelTrait>::Entity")]
struct EntityNameNotAIdent {
    #[sea_orm(from_col = "foo2")]
    _foo: i32,
    #[sea_orm(from_col = "bar2")]
    _bar: String,
}
```
* Added `RelationDef::from_alias()` https://github.com/SeaQL/sea-orm/pull/2146
```rust
let cf = Alias::new("cf");

assert_eq!(
    cake::Entity::find()
        .join_as(
            JoinType::LeftJoin,
            cake_filling::Relation::Cake.def().rev(),
            cf.clone()
        )
        .join(
            JoinType::LeftJoin,
            cake_filling::Relation::Filling.def().from_alias(cf)
        )
        .build(DbBackend::MySql)
        .to_string(),
    [
        "SELECT `cake`.`id`, `cake`.`name` FROM `cake`",
        "LEFT JOIN `cake_filling` AS `cf` ON `cake`.`id` = `cf`.`cake_id`",
        "LEFT JOIN `filling` ON `cf`.`filling_id` = `filling`.`id`",
    ]
    .join(" ")
);
```

### Upgrades

* Upgrade `sea-schema` to `0.15.0-rc.3`
* Upgrade `strum` to `0.26` https://github.com/SeaQL/sea-orm/pull/2088

### House keeping

* Improved Actix example to return 404 not found on unexpected inputs https://github.com/SeaQL/sea-orm/pull/2140
* Re-enable `rocket_okapi` example https://github.com/SeaQL/sea-orm/pull/2136

## 1.0.0-rc.1 - 2024-02-06

### New Features

* [sea-orm-migration] schema helper https://github.com/SeaQL/sea-orm/pull/2099
```rust
// Remember to import `sea_orm_migration::schema::*`
use sea_orm_migration::{prelude::*, schema::*};

#[derive(DeriveMigrationName)]
pub struct Migration;

#[async_trait::async_trait]
impl MigrationTrait for Migration {
    async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
        manager
            .create_table(
                Table::create()
                    .table(Users::Table)
                    .if_not_exists()
                    .col(pk_auto(Users::Id)) // Primary key with auto-increment
                    .col(uuid(Users::Pid)) // UUID column
                    .col(string_uniq(Users::Email)) // String column with unique constraint
                    .col(string(Users::Password)) // String column
                    .col(string(Users::ApiKey).unique_key())
                    .col(string(Users::Name))
                    .col(string_null(Users::ResetToken)) // Nullable string column
                    .col(timestamp_null(Users::ResetSentAt)) // Nullable timestamp column
                    .col(string_null(Users::EmailVerificationToken))
                    .col(timestamp_null(Users::EmailVerificationSentAt))
                    .col(timestamp_null(Users::EmailVerifiedAt))
                    .to_owned(),
            )
            .await
    }

    // ...
}
```

### Breaking Changes

* Rework SQLite type mappings https://github.com/SeaQL/sea-orm/pull/2077, https://github.com/SeaQL/sea-orm/pull/2078
* Updated `sea-query` to `0.31`

## 0.12.14 - 2024-02-05

* Added feature flag `sqlite-use-returning-for-3_35` to use SQLite's returning https://github.com/SeaQL/sea-orm/pull/2070
* Added Loco example https://github.com/SeaQL/sea-orm/pull/2092

## 0.12.12 - 2024-01-22

### Bug Fixes

* [sea-orm-cli] Fix entity generation for non-alphanumeric enum variants https://github.com/SeaQL/sea-orm/pull/1821
* [sea-orm-cli] Fix entity generation for relations with composite keys https://github.com/SeaQL/sea-orm/pull/2071

### Enhancements

* Added `ConnectOptions::test_before_acquire`

## 0.12.11 - 2024-01-14

### New Features

* Added `desc` to `Cursor` paginator https://github.com/SeaQL/sea-orm/pull/2037

### Enhancements

* Improve query performance of `Paginator`'s `COUNT` query https://github.com/SeaQL/sea-orm/pull/2030
* Added SQLx slow statements logging to `ConnectOptions` https://github.com/SeaQL/sea-orm/pull/2055
* Added `QuerySelect::lock_with_behavior` https://github.com/SeaQL/sea-orm/pull/1867

### Bug Fixes

* [sea-orm-macro] Qualify types in `DeriveValueType` macro https://github.com/SeaQL/sea-orm/pull/2054

### House keeping

* Fix clippy warnings on 1.75 https://github.com/SeaQL/sea-orm/pull/2057

## 0.12.10 - 2023-12-14

### New Features

* [sea-orm-macro] Comment attribute for Entity (`#[sea_orm(comment = "action")]`); `create_table_from_entity` supports comment https://github.com/SeaQL/sea-orm/pull/2009
* Added "proxy" (feature flag `proxy`) to database backend https://github.com/SeaQL/sea-orm/pull/1881, https://github.com/SeaQL/sea-orm/pull/2000

### Enhancements

* Cast enums in `is_in` and `is_not_in` https://github.com/SeaQL/sea-orm/pull/2002

### Upgrades

* Updated `sea-query` to `0.30.5` https://github.com/SeaQL/sea-query/releases/tag/0.30.5

## 0.12.9 - 2023-12-08

### Enhancements

* Add source annotations to errors https://github.com/SeaQL/sea-orm/pull/1999

### Upgrades

* Updated `sea-query` to `0.30.4` https://github.com/SeaQL/sea-query/releases/tag/0.30.4

## 0.12.8 - 2023-12-04

### Enhancements

* Implement `StatementBuilder` for `sea_query::WithQuery` https://github.com/SeaQL/sea-orm/issues/1960

### Upgrades

* Upgrade `axum` example to `0.7` https://github.com/SeaQL/sea-orm/pull/1984

## 0.12.7 - 2023-11-22

### Enhancements

* Added method `expr_as_` that accepts `self` https://github.com/SeaQL/sea-orm/pull/1979

### Upgrades

* Updated `sea-query` to `0.30.3` https://github.com/SeaQL/sea-query/releases/tag/0.30.3

## 0.12.6 - 2023-11-13

### New Features

* Added `#[sea_orm(skip)]` for `FromQueryResult` derive macro https://github.com/SeaQL/sea-orm/pull/1954

## 0.12.5 - 2023-11-12

### Bug Fixes

* [sea-orm-cli] Fix duplicated active enum use statements on generated entities https://github.com/SeaQL/sea-orm/pull/1953
* [sea-orm-cli] Added `--enum-extra-derives` https://github.com/SeaQL/sea-orm/pull/1934
* [sea-orm-cli] Added `--enum-extra-attributes` https://github.com/SeaQL/sea-orm/pull/1952

## 0.12.4 - 2023-10-19

### New Features

* Add support for root JSON arrays https://github.com/SeaQL/sea-orm/pull/1898
    Now the following works (requires the `json-array` / `postgres-array` feature)!
```rust
#[derive(Clone, Debug, PartialEq, Eq, DeriveEntityModel)]
#[sea_orm(table_name = "json_struct_vec")]
pub struct Model {
    #[sea_orm(primary_key)]
    pub id: i32,
    #[sea_orm(column_type = "Json")]
    pub struct_vec: Vec<JsonColumn>,
}

#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize, FromJsonQueryResult)]
pub struct JsonColumn {
    pub value: String,
}
```

### Enhancements

* Loader: use `ValueTuple` as hash key https://github.com/SeaQL/sea-orm/pull/1868

### Upgrades

* Updated `sea-query` to `0.30.2` https://github.com/SeaQL/sea-query/releases/tag/0.30.2

## 0.12.3 - 2023-09-22

### New Features

* [sea-orm-migration] Check if an index exists https://github.com/SeaQL/sea-orm/pull/1828
* Added `cursor_by` to `SelectTwo` https://github.com/SeaQL/sea-orm/pull/1826

### Enhancements

* [sea-orm-cli] Support generation of related entity with composite foreign key https://github.com/SeaQL/sea-orm/pull/1693

### Bug Fixes

* [sea-orm-macro] Fixed `DeriveValueType` by qualifying `QueryResult` https://github.com/SeaQL/sea-orm/pull/1855
* Fixed `Loader` panic on empty inputs

### Upgrades

* Upgraded `salvo` to `0.50`
* Upgraded `chrono` to `0.4.30` https://github.com/SeaQL/sea-orm/pull/1858
* Updated `sea-query` to `0.30.1`
* Updated `sea-schema` to `0.14.1`

### House keeping

* Added test cases for `find_xxx_related/linked` https://github.com/SeaQL/sea-orm/pull/1811

## 0.12.2 - 2023-08-04

### Enhancements

* Added support for Postgres arrays in `FromQueryResult` impl of `JsonValue` https://github.com/SeaQL/sea-orm/pull/1598

### Bug fixes

* Fixed `find_with_related` consolidation logic https://github.com/SeaQL/sea-orm/issues/1800

## 0.12.1 - 2023-07-27

+ `0.12.0-rc.1`: Yanked
+ `0.12.0-rc.2`: 2023-05-19
+ `0.12.0-rc.3`: 2023-06-22
+ `0.12.0-rc.4`: 2023-07-08
+ `0.12.0-rc.5`: 2023-07-22

### New Features

* Added `MigratorTrait::migration_table_name()` method to configure the name of migration table https://github.com/SeaQL/sea-orm/pull/1511
```rust
#[async_trait::async_trait]
impl MigratorTrait for Migrator {
    // Override the name of migration table
    fn migration_table_name() -> sea_orm::DynIden {
        Alias::new("override_migration_table_name").into_iden()
    }
    ...
}
```
* Added option to construct chained AND / OR join on condition https://github.com/SeaQL/sea-orm/pull/1433
```rust
#[derive(Clone, Debug, PartialEq, Eq, DeriveEntityModel)]
#[sea_orm(table_name = "cake")]
pub struct Model {
    #[sea_orm(primary_key)]
    pub id: i32,
    pub name: String,
}

#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
pub enum Relation {
    // By default, it's
    // `JOIN `fruit` ON `cake`.`id` = `fruit`.`cake_id` AND `fruit`.`name` LIKE '%tropical%'`
    #[sea_orm(
        has_many = "super::fruit::Entity",
        on_condition = r#"super::fruit::Column::Name.like("%tropical%")"#
    )]
    TropicalFruit,
    // Or specify `condition_type = "any"` to override it,
    // `JOIN `fruit` ON `cake`.`id` = `fruit`.`cake_id` OR `fruit`.`name` LIKE '%tropical%'`
    #[sea_orm(
        has_many = "super::fruit::Entity",
        on_condition = r#"super::fruit::Column::Name.like("%tropical%")"#
        condition_type = "any",
    )]
    OrTropicalFruit,
}
```
* Supports entity with composite primary key of arity 12 https://github.com/SeaQL/sea-orm/pull/1508
    * `Identity` supports tuple of `DynIden` with arity up to 12
```rust
#[derive(Clone, Debug, PartialEq, DeriveEntityModel)]
#[sea_orm(table_name = "primary_key_of_12")]
pub struct Model {
    #[sea_orm(primary_key, auto_increment = false)]
    pub id_1: String,
    ...
    #[sea_orm(primary_key, auto_increment = false)]
    pub id_12: bool,
}
```
* Added macro `DerivePartialModel` https://github.com/SeaQL/sea-orm/pull/1597
```rust
#[derive(DerivePartialModel, FromQueryResult)]
#[sea_orm(entity = "Cake")]
struct PartialCake {
    name: String,
    #[sea_orm(
        from_expr = r#"SimpleExpr::FunctionCall(Func::upper(Expr::col((Cake, cake::Column::Name))))"#
    )]
    name_upper: String,
}

assert_eq!(
    cake::Entity::find()
        .into_partial_model::<PartialCake>()
        .into_statement(DbBackend::Sqlite)
        .to_string(),
    r#"SELECT "cake"."name", UPPER("cake"."name") AS "name_upper" FROM "cake""#
);
```
* Added `DbErr::sql_err()` method to convert error into common database errors `SqlErr`, such as unique constraint or foreign key violation errors. https://github.com/SeaQL/sea-orm/pull/1707
```rust
assert!(matches!(
    cake.into_active_model().insert(db).await
        .expect_err("Insert a row with duplicated primary key")
        .sql_err(),
    Some(SqlErr::UniqueConstraintViolation(_))
));

assert!(matches!(
    fk_cake.insert(db).await
        .expect_err("Insert a row with invalid foreign key")
        .sql_err(),
    Some(SqlErr::ForeignKeyConstraintViolation(_))
));
```
* Added `Select::find_with_linked`, similar to `find_with_related`: https://github.com/SeaQL/sea-orm/pull/1728, https://github.com/SeaQL/sea-orm/pull/1743
```rust
fn find_with_related<R>(self, r: R) -> SelectTwoMany<E, R>
    where R: EntityTrait, E: Related<R>;
fn find_with_linked<L, T>(self, l: L) -> SelectTwoMany<E, T>
    where L: Linked<FromEntity = E, ToEntity = T>, T: EntityTrait;

// boths yields `Vec<(E::Model, Vec<F::Model>)>`
```
* Added `DeriveValueType` derive macro for custom wrapper types, implementations of the required traits will be provided, you can customize the `column_type` and `array_type` if needed https://github.com/SeaQL/sea-orm/pull/1720
```rust
#[derive(DeriveValueType)]
#[sea_orm(array_type = "Int")]
pub struct Integer(i32);

#[derive(DeriveValueType)]
#[sea_orm(column_type = "Boolean", array_type = "Bool")]
pub struct Boolbean(pub String);

#[derive(DeriveValueType)]
pub struct StringVec(pub Vec<String>);
```
* Added `DeriveDisplay` derive macro to implements `std::fmt::Display` for enum https://github.com/SeaQL/sea-orm/pull/1726
```rust
#[derive(DeriveDisplay)]
enum DisplayTea {
    EverydayTea,
    #[sea_orm(display_value = "Breakfast Tea")]
    BreakfastTea,
}
assert_eq!(format!("{}", DisplayTea::EverydayTea), "EverydayTea");
assert_eq!(format!("{}", DisplayTea::BreakfastTea), "Breakfast Tea");
```
* Added `UpdateMany::exec_with_returning()` https://github.com/SeaQL/sea-orm/pull/1677
```rust
let models: Vec<Model> = Entity::update_many()
    .col_expr(Column::Values, Expr::expr(..))
    .exec_with_returning(db)
    .await?;
```
* Supporting `default_expr` in `DeriveEntityModel` https://github.com/SeaQL/sea-orm/pull/1474
```rust
#[derive(DeriveEntityModel)]
#[sea_orm(table_name = "hello")]
pub struct Model {
    #[sea_orm(default_expr = "Expr::current_timestamp()")]
    pub timestamp: DateTimeUtc,
}

assert_eq!(
    Column::Timestamp.def(),
    ColumnType::TimestampWithTimeZone.def()
        .default(Expr::current_timestamp())
);
```
* Introduced new `ConnAcquireErr` https://github.com/SeaQL/sea-orm/pull/1737
```rust
enum DbErr {
    ConnectionAcquire(ConnAcquireErr),
    ..
}

enum ConnAcquireErr {
    Timeout,
    ConnectionClosed,
}
```

#### Seaography

Added Seaography integration https://github.com/SeaQL/sea-orm/pull/1599

* Added `DeriveEntityRelated` macro which will implement `seaography::RelationBuilder` for `RelatedEntity` enumeration when the `seaography` feature is enabled
* Added generation of `seaography` related information to `sea-orm-codegen`.

    The `RelatedEntity` enum is added in entities files by `sea-orm-cli` when flag `seaography` is set:
```rust
/// SeaORM Entity
#[derive(Copy, Clone, Debug, EnumIter, DeriveRelatedEntity)]
pub enum RelatedEntity {
    #[sea_orm(entity = "super::bakery::Entity")]
    Bakery,
    #[sea_orm(entity = "super::cake_baker::Entity")]
    CakeBaker,
    #[sea_orm(entity = "super::cake::Entity")]
    Cake,
}
```
* Added [`seaography_example`](https://github.com/SeaQL/sea-orm/tree/master/examples/seaography_example)

### Enhancements

* Supports for partial select of `Option<T>` model field. A `None` value will be filled when the select result does not contain the `Option<T>` field without throwing an error. https://github.com/SeaQL/sea-orm/pull/1513
* [sea-orm-cli] the `migrate init` command will create a `.gitignore` file when the migration folder reside in a Git repository https://github.com/SeaQL/sea-orm/pull/1334
* [sea-orm-cli] Added support for generating migration of space separated name, for example executing `sea-orm-cli migrate generate "create accounts table"` command will create `m20230503_000000_create_accounts_table.rs` for you https://github.com/SeaQL/sea-orm/pull/1570
* Added `Migration::name()` and `Migration::status()` getters for the name and status of `sea_orm_migration::Migration` https://github.com/SeaQL/sea-orm/pull/1519
```rust
let migrations = Migrator::get_pending_migrations(db).await?;
assert_eq!(migrations.len(), 5);

let migration = migrations.get(0).unwrap();
assert_eq!(migration.name(), "m20220118_000002_create_fruit_table");
assert_eq!(migration.status(), MigrationStatus::Pending);
```
* The `postgres-array` feature will be enabled when `sqlx-postgres` backend is selected https://github.com/SeaQL/sea-orm/pull/1565
* Replace `String` parameters in API with `Into<String>` https://github.com/SeaQL/sea-orm/pull/1439
    * Implements `IntoMockRow` for any `BTreeMap` that is indexed by string `impl IntoMockRow for BTreeMap<T, Value> where T: Into<String>`
    * Converts any string value into `ConnectOptions` - `impl From<T> for ConnectOptions where T: Into<String>`
    * Changed the parameter of method `ConnectOptions::new(T) where T: Into<String>` to takes any string SQL
    * Changed the parameter of method `Statement::from_string(DbBackend, T) where T: Into<String>` to takes any string SQL
    * Changed the parameter of method `Statement::from_sql_and_values(DbBackend, T, I) where I: IntoIterator<Item = Value>, T: Into<String>` to takes any string SQL
    * Changed the parameter of method `Transaction::from_sql_and_values(DbBackend, T, I) where I: IntoIterator<Item = Value>, T: Into<String>` to takes any string SQL
    * Changed the parameter of method `ConnectOptions::set_schema_search_path(T) where T: Into<String>` to takes any string
    * Changed the parameter of method `ColumnTrait::like()`, `ColumnTrait::not_like()`, `ColumnTrait::starts_with()`, `ColumnTrait::ends_with()` and `ColumnTrait::contains()` to takes any string
* Added `sea_query::{DynIden, RcOrArc, SeaRc}` to entity prelude https://github.com/SeaQL/sea-orm/pull/1661
* Added `expr`, `exprs` and `expr_as` methods to `QuerySelect` trait https://github.com/SeaQL/sea-orm/pull/1702
* Added `DatabaseConnection::ping` https://github.com/SeaQL/sea-orm/pull/1627
```rust
|db: DatabaseConnection| {
    assert!(db.ping().await.is_ok());
    db.clone().close().await;
    assert!(matches!(db.ping().await, Err(DbErr::ConnectionAcquire)));
}
```
* Added `TryInsert` that does not panic on empty inserts https://github.com/SeaQL/sea-orm/pull/1708
```rust
// now, you can do:
let res = Bakery::insert_many(std::iter::empty())
    .on_empty_do_nothing()
    .exec(db)
    .await;

assert!(matches!(res, Ok(TryInsertResult::Empty)));
```
* Insert on conflict do nothing to return Ok https://github.com/SeaQL/sea-orm/pull/1712
```rust
let on = OnConflict::column(Column::Id).do_nothing().to_owned();

// Existing behaviour
let res = Entity::insert_many([..]).on_conflict(on).exec(db).await;
assert!(matches!(res, Err(DbErr::RecordNotInserted)));

// New API; now you can:
let res =
Entity::insert_many([..]).on_conflict(on).do_nothing().exec(db).await;
assert!(matches!(res, Ok(TryInsertResult::Conflicted)));
```

### Bug Fixes

* Fixed `DeriveActiveEnum` throwing errors because `string_value` consists non-UAX#31 compliant characters https://github.com/SeaQL/sea-orm/pull/1374
```rust
#[derive(EnumIter, DeriveActiveEnum)]
#[sea_orm(rs_type = "String", db_type = "String(None)")]
pub enum StringValue {
    #[sea_orm(string_value = "")]
    Member1,
    #[sea_orm(string_value = "$$")]
    Member2,
}
// will now produce the following enum:
pub enum StringValueVariant {
    __Empty,
    _0x240x24,
}
```
* [sea-orm-cli] Fix Postgres enum arrays https://github.com/SeaQL/sea-orm/pull/1678
* [sea-orm-cli] The implementation of `Related<R>` with `via` and `to` methods will not be generated if there exists multiple paths via an intermediate table https://github.com/SeaQL/sea-orm/pull/1435
* [sea-orm-cli] fixed entity generation includes partitioned tables https://github.com/SeaQL/sea-orm/issues/1582, https://github.com/SeaQL/sea-schema/pull/105
* Fixed `ActiveEnum::db_type()` return type does not implement `ColumnTypeTrait` https://github.com/SeaQL/sea-orm/pull/1576
* Resolved `insert_many` failing if the models iterator is empty https://github.com/SeaQL/sea-orm/issues/873

### Breaking changes

* Supports for partial select of `Option<T>` model field. A `None` value will be filled when the select result does not contain the `Option<T>` field instead of throwing an error. https://github.com/SeaQL/sea-orm/pull/1513
* Replaced `sea-strum` dependency with upstream `strum` in `sea-orm` https://github.com/SeaQL/sea-orm/pull/1535
    * Added `derive` and `strum` features to `sea-orm-macros`
    * The derive macro `EnumIter` is now shipped by `sea-orm-macros`
* Added a new variant `Many` to `Identity` https://github.com/SeaQL/sea-orm/pull/1508
* Enabled `hashable-value` feature in SeaQuery, thus `Value::Float(NaN) == Value::Float(NaN)` would be true https://github.com/SeaQL/sea-orm/pull/1728, https://github.com/SeaQL/sea-orm/pull/1743
* The `DeriveActiveEnum` derive macro no longer implement `std::fmt::Display`. You can use the new `DeriveDisplay` macro https://github.com/SeaQL/sea-orm/pull/1726
* `sea-query/derive` is no longer enabled by `sea-orm`, as such, `Iden` no longer works as a derive macro (it's still a trait). Instead, we are shipping a new macro `DeriveIden` https://github.com/SeaQL/sea-orm/pull/1740 https://github.com/SeaQL/sea-orm/pull/1755
```rust
// then:

#[derive(Iden)]
#[iden = "category"]
pub struct CategoryEnum;

#[derive(Iden)]
pub enum Tea {
    Table,
    #[iden = "EverydayTea"]
    EverydayTea,
}

// now:

#[derive(DeriveIden)]
#[sea_orm(iden = "category")]
pub struct CategoryEnum;

#[derive(DeriveIden)]
pub enum Tea {
    Table,
    #[sea_orm(iden = "EverydayTea")]
    EverydayTea,
}
```
* Definition of `DbErr::ConnectionAcquire` changed to `ConnectionAcquire(ConnAcquireErr)` https://github.com/SeaQL/sea-orm/pull/1737
* `FromJsonQueryResult` removed from entity prelude

### Upgrades

* Upgraded `sqlx` to `0.7` https://github.com/SeaQL/sea-orm/pull/1742
* Upgraded `sea-query` to `0.30` https://github.com/SeaQL/sea-orm/pull/1742
* Upgraded `sea-schema` to `0.14` https://github.com/SeaQL/sea-orm/pull/1742
* Upgraded `syn` to `2` https://github.com/SeaQL/sea-orm/pull/1713
* Upgraded `heck` to `0.4` https://github.com/SeaQL/sea-orm/pull/1520, https://github.com/SeaQL/sea-orm/pull/1544
* Upgraded `strum` to `0.25` https://github.com/SeaQL/sea-orm/pull/1752
* Upgraded `clap` to `4.3` https://github.com/SeaQL/sea-orm/pull/1468
* Upgraded `ouroboros` to `0.17` https://github.com/SeaQL/sea-orm/pull/1724

### House keeping

* Replaced `bae` with `sea-bae` https://github.com/SeaQL/sea-orm/pull/1739

**Full Changelog**: https://github.com/SeaQL/sea-orm/compare/0.11.1...0.12.1

## 0.11.3 - 2023-04-24

### Enhancements

* Re-export `sea_orm::ConnectionTrait` in `sea_orm_migration::prelude` https://github.com/SeaQL/sea-orm/pull/1577
* Support generic structs in `FromQueryResult` derive macro https://github.com/SeaQL/sea-orm/pull/1464, https://github.com/SeaQL/sea-orm/pull/1603
```rust
#[derive(FromQueryResult)]
struct GenericTest<T: TryGetable> {
    foo: i32,
    bar: T,
}
```
```rust
trait MyTrait {
    type Item: TryGetable;
}

#[derive(FromQueryResult)]
struct TraitAssociateTypeTest<T>
where
    T: MyTrait,
{
    foo: T::Item,
}
```

### Bug Fixes

* Fixed https://github.com/SeaQL/sea-orm/issues/1608 by pinning the version of `tracing-subscriber` dependency to 0.3.17 https://github.com/SeaQL/sea-orm/pull/1609

## 0.11.2 - 2023-03-25

### Enhancements

* Enable required `syn` features https://github.com/SeaQL/sea-orm/pull/1556
* Re-export `sea_query::BlobSize` in `sea_orm::entity::prelude` https://github.com/SeaQL/sea-orm/pull/1548

## 0.11.1 - 2023-03-10

### Bug Fixes

* Fixes `DeriveActiveEnum` (by qualifying `ColumnTypeTrait::def`) https://github.com/SeaQL/sea-orm/issues/1478
* The CLI command `sea-orm-cli generate entity -u '<DB-URL>'` will now generate the following code for each `Binary` or `VarBinary` columns in compact format https://github.com/SeaQL/sea-orm/pull/1529
```rust
#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
#[sea_orm(table_name = "binary")]
pub struct Model {
    #[sea_orm(primary_key)]
    pub id: i32,
    #[sea_orm(column_type = "Binary(BlobSize::Blob(None))")]
    pub binary: Vec<u8>,
    #[sea_orm(column_type = "Binary(BlobSize::Blob(Some(10)))")]
    pub binary_10: Vec<u8>,
    #[sea_orm(column_type = "Binary(BlobSize::Tiny)")]
    pub binary_tiny: Vec<u8>,
    #[sea_orm(column_type = "Binary(BlobSize::Medium)")]
    pub binary_medium: Vec<u8>,
    #[sea_orm(column_type = "Binary(BlobSize::Long)")]
    pub binary_long: Vec<u8>,
    #[sea_orm(column_type = "VarBinary(10)")]
    pub var_binary: Vec<u8>,
}
```
* The CLI command `sea-orm-cli generate entity -u '<DB-URL>' --expanded-format` will now generate the following code for each `Binary` or `VarBinary` columns in expanded format https://github.com/SeaQL/sea-orm/pull/1529
```rust
impl ColumnTrait for Column {
    type EntityName = Entity;
    fn def(&self) -> ColumnDef {
        match self {
            Self::Id => ColumnType::Integer.def(),
            Self::Binary => ColumnType::Binary(sea_orm::sea_query::BlobSize::Blob(None)).def(),
            Self::Binary10 => {
                ColumnType::Binary(sea_orm::sea_query::BlobSize::Blob(Some(10u32))).def()
            }
            Self::BinaryTiny => ColumnType::Binary(sea_orm::sea_query::BlobSize::Tiny).def(),
            Self::BinaryMedium => ColumnType::Binary(sea_orm::sea_query::BlobSize::Medium).def(),
            Self::BinaryLong => ColumnType::Binary(sea_orm::sea_query::BlobSize::Long).def(),
            Self::VarBinary => ColumnType::VarBinary(10u32).def(),
        }
    }
}
```
* Fix missing documentation on type generated by derive macros https://github.com/SeaQL/sea-orm/pull/1522, https://github.com/SeaQL/sea-orm/pull/1531

## 0.11.0 - 2023-02-07

+ 2023-02-02: `0.11.0-rc.1`
+ 2023-02-04: `0.11.0-rc.2`

### New Features

#### SeaORM Core

* Simple data loader https://github.com/SeaQL/sea-orm/pull/1238, https://github.com/SeaQL/sea-orm/pull/1443
* Transactions Isolation level and Access mode https://github.com/SeaQL/sea-orm/pull/1230
* Support various UUID formats that are available in `uuid::fmt` module https://github.com/SeaQL/sea-orm/pull/1325
* Support Vector of enum for Postgres https://github.com/SeaQL/sea-orm/pull/1210
* Support `ActiveEnum` field as primary key https://github.com/SeaQL/sea-orm/pull/1414
* Casting columns as a different data type on select, insert and update https://github.com/SeaQL/sea-orm/pull/1304
* Methods of `ActiveModelBehavior` receive db connection as a parameter https://github.com/SeaQL/sea-orm/pull/1145, https://github.com/SeaQL/sea-orm/pull/1328
* Added `execute_unprepared` method to `DatabaseConnection` and `DatabaseTransaction` https://github.com/SeaQL/sea-orm/pull/1327
* Added `Select::into_tuple` to select rows as tuples (instead of defining a custom Model) https://github.com/SeaQL/sea-orm/pull/1311

#### SeaORM CLI

* Generate `#[serde(skip_deserializing)]` for primary key columns https://github.com/SeaQL/sea-orm/pull/846, https://github.com/SeaQL/sea-orm/pull/1186, https://github.com/SeaQL/sea-orm/pull/1318
* Generate `#[serde(skip)]` for hidden columns https://github.com/SeaQL/sea-orm/pull/1171, https://github.com/SeaQL/sea-orm/pull/1320
* Generate entity with extra derives and attributes for model struct https://github.com/SeaQL/sea-orm/pull/1124, https://github.com/SeaQL/sea-orm/pull/1321

#### SeaORM Migration

* Migrations are now performed inside a transaction for Postgres https://github.com/SeaQL/sea-orm/pull/1379

### Enhancements

* Refactor schema module to expose functions for database alteration https://github.com/SeaQL/sea-orm/pull/1256
* Generate compact entity with `#[sea_orm(column_type = "JsonBinary")]` macro attribute https://github.com/SeaQL/sea-orm/pull/1346
* `MockDatabase::append_exec_results()`, `MockDatabase::append_query_results()`, `MockDatabase::append_exec_errors()` and `MockDatabase::append_query_errors()` take any types implemented `IntoIterator` trait https://github.com/SeaQL/sea-orm/pull/1367
* `find_by_id` and `delete_by_id` take any `Into` primary key value https://github.com/SeaQL/sea-orm/pull/1362
* `QuerySelect::offset` and `QuerySelect::limit` takes in `Into<Option<u64>>` where `None` would reset them https://github.com/SeaQL/sea-orm/pull/1410
* Added `DatabaseConnection::close` https://github.com/SeaQL/sea-orm/pull/1236
* Added `is_null` getter for `ColumnDef` https://github.com/SeaQL/sea-orm/pull/1381
* Added `ActiveValue::reset` to convert `Unchanged` into `Set` https://github.com/SeaQL/sea-orm/pull/1177
* Added `QueryTrait::apply_if` to optionally apply a filter https://github.com/SeaQL/sea-orm/pull/1415
* Added the `sea-orm-internal` feature flag to expose some SQLx types
    * Added `DatabaseConnection::get_*_connection_pool()` for accessing the inner SQLx connection pool https://github.com/SeaQL/sea-orm/pull/1297
    * Re-exporting SQLx errors https://github.com/SeaQL/sea-orm/pull/1434

### Upgrades

* Upgrade `axum` to `0.6.1` https://github.com/SeaQL/sea-orm/pull/1285
* Upgrade `sea-query` to `0.28` https://github.com/SeaQL/sea-orm/pull/1366
* Upgrade `sea-query-binder` to `0.3` https://github.com/SeaQL/sea-orm/pull/1366
* Upgrade `sea-schema` to `0.11` https://github.com/SeaQL/sea-orm/pull/1366

### House Keeping

* Fixed all clippy warnings as of `1.67.0` https://github.com/SeaQL/sea-orm/pull/1426
* Removed dependency where not needed https://github.com/SeaQL/sea-orm/pull/1213
* Disabled default features and enabled only the needed ones https://github.com/SeaQL/sea-orm/pull/1300
* Cleanup panic and unwrap https://github.com/SeaQL/sea-orm/pull/1231
* Cleanup the use of `vec!` macro https://github.com/SeaQL/sea-orm/pull/1367

### Bug Fixes

* [sea-orm-cli] Propagate error on the spawned child processes https://github.com/SeaQL/sea-orm/pull/1402
    * Fixes sea-orm-cli errors exit with error code 0 https://github.com/SeaQL/sea-orm/issues/1342
* Fixes `DeriveColumn` (by qualifying `IdenStatic::as_str`) https://github.com/SeaQL/sea-orm/pull/1280
* Prevent returning connections to pool with a positive transaction depth https://github.com/SeaQL/sea-orm/pull/1283
* Postgres insert many will throw `RecordNotInserted` error if non of them are being inserted https://github.com/SeaQL/sea-orm/pull/1021
    * Fixes inserting active models by `insert_many` with `on_conflict` and `do_nothing` panics if no rows are inserted on Postgres https://github.com/SeaQL/sea-orm/issues/899
* Don't call `last_insert_id` if not needed https://github.com/SeaQL/sea-orm/pull/1403
    * Fixes hitting 'negative last_insert_rowid' panic with Sqlite https://github.com/SeaQL/sea-orm/issues/1357
* Noop when update without providing any values https://github.com/SeaQL/sea-orm/pull/1384
    * Fixes Syntax Error when saving active model that sets nothing https://github.com/SeaQL/sea-orm/pull/1376

### Breaking Changes

* [sea-orm-cli] Enable --universal-time by default https://github.com/SeaQL/sea-orm/pull/1420
* Added `RecordNotInserted` and `RecordNotUpdated` to `DbErr`
* Added `ConnectionTrait::execute_unprepared` method https://github.com/SeaQL/sea-orm/pull/1327
* As part of https://github.com/SeaQL/sea-orm/pull/1311, the required method of `TryGetable` changed:
```rust
// then
fn try_get(res: &QueryResult, pre: &str, col: &str) -> Result<Self, TryGetError>;
// now; ColIdx can be `&str` or `usize`
fn try_get_by<I: ColIdx>(res: &QueryResult, index: I) -> Result<Self, TryGetError>;
```
So if you implemented it yourself:
```patch
impl TryGetable for XXX {
-   fn try_get(res: &QueryResult, pre: &str, col: &str) -> Result<Self, TryGetError> {
+   fn try_get_by<I: sea_orm::ColIdx>(res: &QueryResult, idx: I) -> Result<Self, TryGetError> {
-       let value: YYY = res.try_get(pre, col).map_err(TryGetError::DbErr)?;
+       let value: YYY = res.try_get_by(idx).map_err(TryGetError::DbErr)?;
        ..
    }
}
```
* The `ActiveModelBehavior` trait becomes async trait https://github.com/SeaQL/sea-orm/pull/1328.
If you overridden the default `ActiveModelBehavior` implementation:
```rust
#[async_trait::async_trait]
impl ActiveModelBehavior for ActiveModel {
    async fn before_save<C>(self, db: &C, insert: bool) -> Result<Self, DbErr>
    where
        C: ConnectionTrait,
    {
        // ...
    }

    // ...
}
```
* `DbErr::RecordNotFound("None of the database rows are affected")` is moved to a dedicated error variant `DbErr::RecordNotUpdated` https://github.com/SeaQL/sea-orm/pull/1425
```rust
let res = Update::one(cake::ActiveModel {
        name: Set("Cheese Cake".to_owned()),
        ..model.into_active_model()
    })
    .exec(&db)
    .await;

// then
assert_eq!(
    res,
    Err(DbErr::RecordNotFound(
        "None of the database rows are affected".to_owned()
    ))
);

// now
assert_eq!(res, Err(DbErr::RecordNotUpdated));
```
* `sea_orm::ColumnType` was replaced by `sea_query::ColumnType` https://github.com/SeaQL/sea-orm/pull/1395
    * Method `ColumnType::def` was moved to `ColumnTypeTrait`
    * `ColumnType::Binary` becomes a tuple variant which takes in additional option `sea_query::BlobSize`
    * `ColumnType::Custom` takes a `sea_query::DynIden` instead of `String` and thus a new method `custom` is added (note the lowercase)
```diff
// Compact Entity
#[derive(Clone, Debug, PartialEq, Eq, DeriveEntityModel)]
#[sea_orm(table_name = "fruit")]
pub struct Model {
-   #[sea_orm(column_type = r#"Custom("citext".to_owned())"#)]
+   #[sea_orm(column_type = r#"custom("citext")"#)]
    pub column: String,
}
```
```diff
// Expanded Entity
impl ColumnTrait for Column {
    type EntityName = Entity;

    fn def(&self) -> ColumnDef {
        match self {
-           Self::Column => ColumnType::Custom("citext".to_owned()).def(),
+           Self::Column => ColumnType::custom("citext").def(),
        }
    }
}
```

### Miscellaneous

* Fixed a small typo https://github.com/SeaQL/sea-orm/pull/1391
* `axum` example should use tokio runtime https://github.com/SeaQL/sea-orm/pull/1428

**Full Changelog**: https://github.com/SeaQL/sea-orm/compare/0.10.0...0.11.0

## 0.10.7 - 2023-01-19

### Bug Fixes

* Inserting active models by `insert_many` with `on_conflict` and `do_nothing` panics if no rows are inserted on Postgres https://github.com/SeaQL/sea-orm/issues/899
* Hitting 'negative last_insert_rowid' panic with Sqlite https://github.com/SeaQL/sea-orm/issues/1357

## 0.10.6 - 2022-12-23

### Enhancements

* Cast enum values when constructing update many query https://github.com/SeaQL/sea-orm/pull/1178

### Bug Fixes

* Fixes `DeriveColumn` (by qualifying `IdenStatic::as_str`) https://github.com/SeaQL/sea-orm/pull/1280
* Prevent returning connections to pool with a positive transaction depth https://github.com/SeaQL/sea-orm/pull/1283
* [sea-orm-codegen] Skip implementing Related if the same related entity is being referenced by a conjunct relation https://github.com/SeaQL/sea-orm/pull/1298
* [sea-orm-cli] CLI depends on codegen of the same version https://github.com/SeaQL/sea-orm/pull/1299/

## 0.10.5 - 2022-12-02

### New Features

* Add `QuerySelect::columns` method - select multiple columns https://github.com/SeaQL/sea-orm/pull/1264
* Transactions Isolation level and Access mode https://github.com/SeaQL/sea-orm/pull/1230

### Bug Fixes

* `DeriveEntityModel` derive macro: when parsing field type, always treat field with `Option<T>` as nullable column https://github.com/SeaQL/sea-orm/pull/1257

### Enhancements

* [sea-orm-cli] Generate `Related` implementation for many-to-many relation with extra columns https://github.com/SeaQL/sea-orm/pull/1260
* Optimize the default implementation of `TryGetableFromJson::try_get_from_json()` - deserializing into `Self` directly without the need of a intermediate `serde_json::Value` https://github.com/SeaQL/sea-orm/pull/1249

## 0.10.4 - 2022-11-24

### Bug Fixes

* Fix DeriveActiveEnum expand enum variant starts with number https://github.com/SeaQL/sea-orm/pull/1219
* [sea-orm-cli] Generate entity file for specified tables only https://github.com/SeaQL/sea-orm/pull/1245
* Support appending `DbErr` to `MockDatabase` https://github.com/SeaQL/sea-orm/pull/1241

### Enhancements

* Filter rows with `IS IN` enum values expression https://github.com/SeaQL/sea-orm/pull/1183
* [sea-orm-cli] Generate entity with relation variant order by name of reference table https://github.com/SeaQL/sea-orm/pull/1229

## 0.10.3 - 2022-11-14

### Bug Fixes

* [sea-orm-cli] Set search path when initializing Postgres connection for CLI generate entity https://github.com/SeaQL/sea-orm/pull/1212
* [sea-orm-cli] Generate `_` prefix to enum variant starts with number https://github.com/SeaQL/sea-orm/pull/1211
* Fix composite key cursor pagination https://github.com/SeaQL/sea-orm/pull/1216
    + The logic for single-column primary key was correct, but for composite keys the logic was incorrect

### Enhancements

* Added `Insert::exec_without_returning` https://github.com/SeaQL/sea-orm/pull/1208

### House Keeping

* Remove dependency when not needed https://github.com/SeaQL/sea-orm/pull/1207

## 0.10.2 - 2022-11-06

### Enhancements

* [sea-orm-rocket] added `sqlx_logging` to `Config` https://github.com/SeaQL/sea-orm/pull/1192
* Collecting metrics for `query_one/all` https://github.com/SeaQL/sea-orm/pull/1165
* Use GAT to elide `StreamTrait` lifetime https://github.com/SeaQL/sea-orm/pull/1161

### Bug Fixes

* corrected the error name `UpdateGetPrimaryKey` https://github.com/SeaQL/sea-orm/pull/1180

### Upgrades

* Update MSRV to 1.65

## 0.10.1 - 2022-10-27

### Enhancements

* [sea-orm-cli] Escape module name defined with Rust keywords https://github.com/SeaQL/sea-orm/pull/1052
* [sea-orm-cli] Check to make sure migration name doesn't contain hyphen `-` in it https://github.com/SeaQL/sea-orm/pull/879, https://github.com/SeaQL/sea-orm/pull/1155
* Support `time` crate for SQLite https://github.com/SeaQL/sea-orm/pull/995

### Bug Fixes

* [sea-orm-cli] Generate `Related` for m-to-n relation https://github.com/SeaQL/sea-orm/pull/1075
* [sea-orm-cli] Generate model entity with Postgres Enum field https://github.com/SeaQL/sea-orm/pull/1153
* [sea-orm-cli] Migrate up command apply all pending migrations https://github.com/SeaQL/sea-orm/pull/1010
* [sea-orm-cli] Conflicting short flag `-u` when executing `migrate generate` command https://github.com/SeaQL/sea-orm/pull/1157
* Prefix the usage of types with `sea_orm::` inside `DeriveActiveEnum` derive macros https://github.com/SeaQL/sea-orm/pull/1146, https://github.com/SeaQL/sea-orm/pull/1154
* [sea-orm-cli] Generate model with `Vec<f32>` or `Vec<f64>` should not derive `Eq` on the model struct https://github.com/SeaQL/sea-orm/pull/1158

### House Keeping

* [sea-orm-cli] [sea-orm-migration] Add `cli` feature to optionally include dependencies that are required by the CLI https://github.com/SeaQL/sea-orm/pull/978

### Upgrades

* Upgrade `sea-schema` to 0.10.2 https://github.com/SeaQL/sea-orm/pull/1153

## 0.10.0 - 2022-10-23

### New Features

* Better error types (carrying SQLx Error) https://github.com/SeaQL/sea-orm/pull/1002
* Support array datatype in PostgreSQL https://github.com/SeaQL/sea-orm/pull/1132
* [sea-orm-cli] Generate entity files as a library or module https://github.com/SeaQL/sea-orm/pull/953
* [sea-orm-cli] Generate a new migration template with name prefix of unix timestamp https://github.com/SeaQL/sea-orm/pull/947
* [sea-orm-cli] Generate migration in modules https://github.com/SeaQL/sea-orm/pull/933
* [sea-orm-cli] Generate `DeriveRelation` on empty `Relation` enum https://github.com/SeaQL/sea-orm/pull/1019
* [sea-orm-cli] Generate entity derive `Eq` if possible https://github.com/SeaQL/sea-orm/pull/988
* [sea-orm-cli] Run migration on any PostgreSQL schema https://github.com/SeaQL/sea-orm/pull/1056

### Enhancements

* Support `distinct` & `distinct_on` expression https://github.com/SeaQL/sea-orm/pull/902
* `fn column()` also handle enum type https://github.com/SeaQL/sea-orm/pull/973
* Added `acquire_timeout` on `ConnectOptions` https://github.com/SeaQL/sea-orm/pull/897
* [sea-orm-cli] `migrate fresh` command will drop all PostgreSQL types https://github.com/SeaQL/sea-orm/pull/864, https://github.com/SeaQL/sea-orm/pull/991
* Better compile error for entity without primary key https://github.com/SeaQL/sea-orm/pull/1020
* Added blanket implementations of `IntoActiveValue` for `Option` values https://github.com/SeaQL/sea-orm/pull/833
* Added `into_model` & `into_json` to `Cursor` https://github.com/SeaQL/sea-orm/pull/1112
* Added `set_schema_search_path` method to `ConnectOptions` for setting schema search path of PostgreSQL connection https://github.com/SeaQL/sea-orm/pull/1056
* Serialize `time` types as `serde_json::Value` https://github.com/SeaQL/sea-orm/pull/1042
* Implements `fmt::Display` for `ActiveEnum` https://github.com/SeaQL/sea-orm/pull/986
* Implements `TryFrom<ActiveModel>` for `Model` https://github.com/SeaQL/sea-orm/pull/990

### Bug Fixes

* Trim spaces when paginating raw SQL https://github.com/SeaQL/sea-orm/pull/1094

### Breaking Changes

* Replaced `usize` with `u64` in `PaginatorTrait` https://github.com/SeaQL/sea-orm/pull/789
* Type signature of `DbErr` changed as a result of https://github.com/SeaQL/sea-orm/pull/1002
* `ColumnType::Enum` structure changed:
```rust
enum ColumnType {
    // then
    Enum(String, Vec<String>)

    // now
    Enum {
        /// Name of enum
        name: DynIden,
        /// Variants of enum
        variants: Vec<DynIden>,
    }
    ...
}

// example

#[derive(Iden)]
enum TeaEnum {
    #[iden = "tea"]
    Enum,
    #[iden = "EverydayTea"]
    EverydayTea,
    #[iden = "BreakfastTea"]
    BreakfastTea,
}

// then
ColumnDef::new(active_enum_child::Column::Tea)
    .enumeration("tea", vec!["EverydayTea", "BreakfastTea"])

// now
ColumnDef::new(active_enum_child::Column::Tea)
    .enumeration(TeaEnum::Enum, [TeaEnum::EverydayTea, TeaEnum::BreakfastTea])
```

* A new method `array_type` was added to `ValueType`:
```rust
impl sea_orm::sea_query::ValueType for MyType {
    fn array_type() -> sea_orm::sea_query::ArrayType {
        sea_orm::sea_query::ArrayType::TypeName
    }
    ...
}
```

* `ActiveEnum::name()` changed return type to `DynIden`:
```rust
#[derive(Debug, Iden)]
#[iden = "category"]
pub struct CategoryEnum;

impl ActiveEnum for Category {
    // then
    fn name() -> String {
        "category".to_owned()
    }

    // now
    fn name() -> DynIden {
        SeaRc::new(CategoryEnum)
    }
    ...
}
```

### House Keeping

* Documentation grammar fixes https://github.com/SeaQL/sea-orm/pull/1050
* Replace `dotenv` with `dotenvy` in examples https://github.com/SeaQL/sea-orm/pull/1085
* Exclude test_cfg module from SeaORM https://github.com/SeaQL/sea-orm/pull/1077

### Integration

* Support `rocket_okapi` https://github.com/SeaQL/sea-orm/pull/1071

### Upgrades

* Upgrade `sea-query` to 0.26 https://github.com/SeaQL/sea-orm/pull/985

**Full Changelog**: https://github.com/SeaQL/sea-orm/compare/0.9.0...0.10.0

## 0.9.3 - 2022-09-30

### Enhancements

* `fn column()` also handle enum type https://github.com/SeaQL/sea-orm/pull/973
* Generate migration in modules https://github.com/SeaQL/sea-orm/pull/933
* Generate `DeriveRelation` on empty `Relation` enum https://github.com/SeaQL/sea-orm/pull/1019
* Documentation grammar fixes https://github.com/SeaQL/sea-orm/pull/1050

### Bug Fixes

* Implement `IntoActiveValue` for `time` types https://github.com/SeaQL/sea-orm/pull/1041
* Fixed module import for `FromJsonQueryResult` derive macro https://github.com/SeaQL/sea-orm/pull/1081

## 0.9.2 - 2022-08-20

### Enhancements

* [sea-orm-cli] Migrator CLI handles init and generate commands https://github.com/SeaQL/sea-orm/pull/931
* [sea-orm-cli] added `with-copy-enums` flag to conditional derive `Copy` on `ActiveEnum` https://github.com/SeaQL/sea-orm/pull/936

### House Keeping

* Exclude `chrono` default features https://github.com/SeaQL/sea-orm/pull/950
* Set minimal rustc version to `1.60` https://github.com/SeaQL/sea-orm/pull/938
* Update `sea-query` to `0.26.3`

### Notes

In this minor release, we removed `time` v0.1 from the dependency graph

## 0.9.1 - 2022-07-22

### Enhancements

* [sea-orm-cli] Codegen support for `VarBinary` column type https://github.com/SeaQL/sea-orm/pull/746
* [sea-orm-cli] Generate entity for SYSTEM VERSIONED tables on MariaDB https://github.com/SeaQL/sea-orm/pull/876

### Bug Fixes

* `RelationDef` & `RelationBuilder` should be `Send` & `Sync` https://github.com/SeaQL/sea-orm/pull/898

### House Keeping

* Remove unnecessary `async_trait` https://github.com/SeaQL/sea-orm/pull/737

## 0.9.0 - 2022-07-17

### New Features

* Cursor pagination https://github.com/SeaQL/sea-orm/pull/822
* Custom join on conditions https://github.com/SeaQL/sea-orm/pull/793
* `DeriveMigrationName` and `sea_orm_migration::util::get_file_stem` https://github.com/SeaQL/sea-orm/pull/736
* `FromJsonQueryResult` for deserializing `Json` from query result https://github.com/SeaQL/sea-orm/pull/794

### Enhancements

* Added `sqlx_logging_level` to `ConnectOptions` https://github.com/SeaQL/sea-orm/pull/800
* Added `num_items_and_pages` to `Paginator` https://github.com/SeaQL/sea-orm/pull/768
* Added `TryFromU64` for `time` https://github.com/SeaQL/sea-orm/pull/849
* Added `Insert::on_conflict` https://github.com/SeaQL/sea-orm/pull/791
* Added `QuerySelect::join_as` and `QuerySelect::join_as_rev` https://github.com/SeaQL/sea-orm/pull/852
* Include column name in `TryGetError::Null` https://github.com/SeaQL/sea-orm/pull/853
* [sea-orm-cli] Improve logging https://github.com/SeaQL/sea-orm/pull/735
* [sea-orm-cli] Generate enum with numeric like variants https://github.com/SeaQL/sea-orm/pull/588
* [sea-orm-cli] Allow old pending migration to be applied https://github.com/SeaQL/sea-orm/pull/755
* [sea-orm-cli] Skip generating entity for ignored tables https://github.com/SeaQL/sea-orm/pull/837
* [sea-orm-cli] Generate code for `time` crate https://github.com/SeaQL/sea-orm/pull/724
* [sea-orm-cli] Add various blob column types https://github.com/SeaQL/sea-orm/pull/850
* [sea-orm-cli] Generate entity files with Postgres's schema name https://github.com/SeaQL/sea-orm/pull/422

### Upgrades

* Upgrade `clap` to 3.2 https://github.com/SeaQL/sea-orm/pull/706
* Upgrade `time` to 0.3 https://github.com/SeaQL/sea-orm/pull/834
* Upgrade `sqlx` to 0.6 https://github.com/SeaQL/sea-orm/pull/834
* Upgrade `uuid` to 1.0 https://github.com/SeaQL/sea-orm/pull/834
* Upgrade `sea-query` to 0.26 https://github.com/SeaQL/sea-orm/pull/834
* Upgrade `sea-schema` to 0.9 https://github.com/SeaQL/sea-orm/pull/834

### House Keeping

* Refactor stream metrics https://github.com/SeaQL/sea-orm/pull/778

### Bug Fixes

* [sea-orm-cli] skip checking connection string for credentials https://github.com/SeaQL/sea-orm/pull/851

### Breaking Changes

* `SelectTwoMany::one()` has been dropped https://github.com/SeaQL/sea-orm/pull/813, you can get `(Entity, Vec<RelatedEntity>)` by first querying a single model from Entity, then use [`ModelTrait::find_related`] on the model.
* #### Feature flag revamp
    We now adopt the [weak dependency](https://blog.rust-lang.org/2022/04/07/Rust-1.60.0.html#new-syntax-for-cargo-features) syntax in Cargo. That means the flags `["sqlx-json", "sqlx-chrono", "sqlx-decimal", "sqlx-uuid", "sqlx-time"]` are not needed and now removed. Instead, `with-time` will enable `sqlx?/time` only if `sqlx` is already enabled. As a consequence, now the features `with-json`, `with-chrono`, `with-rust_decimal`, `with-uuid`, `with-time` will not be enabled as a side-effect of enabling `sqlx`.

**Full Changelog**: https://github.com/SeaQL/sea-orm/compare/0.8.0...0.9.0

## sea-orm-migration 0.8.3

* Removed `async-std` from dependency https://github.com/SeaQL/sea-orm/pull/758

## 0.8.0 - 2022-05-10

### New Features
* [sea-orm-cli] `sea migrate generate` to generate a new, empty migration file https://github.com/SeaQL/sea-orm/pull/656

### Enhancements
* Add `max_connections` option to CLI https://github.com/SeaQL/sea-orm/pull/670
* Derive `Eq`, `Clone` for `DbErr` https://github.com/SeaQL/sea-orm/pull/677
* Add `is_changed` to `ActiveModelTrait` https://github.com/SeaQL/sea-orm/pull/683

### Bug Fixes
* Fix `DerivePrimaryKey` with custom primary key column name https://github.com/SeaQL/sea-orm/pull/694
* Fix `DeriveEntityModel` macros override column name https://github.com/SeaQL/sea-orm/pull/695
* Fix Insert with no value supplied using `DEFAULT` https://github.com/SeaQL/sea-orm/pull/589

### Breaking Changes
* Migration utilities are moved from sea-schema to sea-orm repo, under a new sub-crate `sea-orm-migration`. `sea_schema::migration::prelude` should be replaced by `sea_orm_migration::prelude` in all migration files

### Upgrades
* Upgrade `sea-query` to 0.24.x, `sea-schema` to 0.8.x
* Upgrade example to Actix Web 4, Actix Web 3 remains https://github.com/SeaQL/sea-orm/pull/638
* Added Tonic gRPC example https://github.com/SeaQL/sea-orm/pull/659
* Upgrade GraphQL example to use axum 0.5.x
* Upgrade axum example to 0.5.x

### Fixed Issues
* Failed to insert row with only default values https://github.com/SeaQL/sea-orm/issues/420
* Reduce database connections to 1 during codegen https://github.com/SeaQL/sea-orm/issues/511
* Column names with single letters separated by underscores are concatenated https://github.com/SeaQL/sea-orm/issues/630
* Update Actix Web examples https://github.com/SeaQL/sea-orm/issues/639
* Lower function missing https://github.com/SeaQL/sea-orm/issues/672
* is_changed on active_model https://github.com/SeaQL/sea-orm/issues/674
* Failing find_with_related with column_name attribute https://github.com/SeaQL/sea-orm/issues/693

**Full Changelog**: https://github.com/SeaQL/sea-orm/compare/0.7.1...0.8.0

## 0.7.1 - 2022-03-26

* Fix sea-orm-cli error
* Fix sea-orm cannot build without `with-json`

## 0.7.0 - 2022-03-26

### New Features
* Update ActiveModel by JSON by @billy1624 in https://github.com/SeaQL/sea-orm/pull/492
* Supports `time` crate by @billy1624 https://github.com/SeaQL/sea-orm/pull/602
* Allow for creation of indexes for PostgreSQL and SQLite @nickb937 https://github.com/SeaQL/sea-orm/pull/593
* Added `delete_by_id` @ShouvikGhosh2048 https://github.com/SeaQL/sea-orm/pull/590
* Implement `PaginatorTrait` for `SelectorRaw` @shinbunbun https://github.com/SeaQL/sea-orm/pull/617

### Enhancements
* Added axum graphql example by @aaronleopold in https://github.com/SeaQL/sea-orm/pull/587
* Add example for integrate with jsonrpsee by @hunjixin https://github.com/SeaQL/sea-orm/pull/632
* Codegen add serde derives to enums, if specified by @BenJeau https://github.com/SeaQL/sea-orm/pull/463
* Codegen Unsigned Integer by @billy1624 https://github.com/SeaQL/sea-orm/pull/397
* Add `Send` bound to `QueryStream` and `TransactionStream` by @sebpuetz https://github.com/SeaQL/sea-orm/pull/471
* Add `Send` to `StreamTrait` by @nappa85 https://github.com/SeaQL/sea-orm/pull/622
* `sea` as an alternative bin name to `sea-orm-cli` by @ZhangHanDong https://github.com/SeaQL/sea-orm/pull/558

### Bug Fixes
* Fix codegen with Enum in expanded format by @billy1624 https://github.com/SeaQL/sea-orm/pull/624
* Fixing and testing into_json of various field types by @billy1624 https://github.com/SeaQL/sea-orm/pull/539

### Breaking Changes
* Exclude `mock` from default features by @billy1624 https://github.com/SeaQL/sea-orm/pull/562
* `create_table_from_entity` will no longer create index for MySQL, please use the new method `create_index_from_entity`

### Documentations
* Describe default value of ActiveValue on document by @Ken-Miura in https://github.com/SeaQL/sea-orm/pull/556
* community: add axum-book-management by @lz1998 in https://github.com/SeaQL/sea-orm/pull/564
* Add Backpack to project showcase by @JSH32 in https://github.com/SeaQL/sea-orm/pull/567
* Add mediarepo to showcase by @Trivernis in https://github.com/SeaQL/sea-orm/pull/569
* COMMUNITY: add a link to Svix to showcase by @tasn in https://github.com/SeaQL/sea-orm/pull/537
* Update COMMUNITY.md by @naryand in https://github.com/SeaQL/sea-orm/pull/570
* Update COMMUNITY.md by @BobAnkh in https://github.com/SeaQL/sea-orm/pull/568
* Update COMMUNITY.md by @KaniyaSimeji in https://github.com/SeaQL/sea-orm/pull/566
* Update COMMUNITY.md by @aaronleopold in https://github.com/SeaQL/sea-orm/pull/565
* Update COMMUNITY.md by @gudaoxuri in https://github.com/SeaQL/sea-orm/pull/572
* Update Wikijump's entry in COMMUNITY.md by @ammongit in https://github.com/SeaQL/sea-orm/pull/573
* Update COMMUNITY.md by @koopa1338 in https://github.com/SeaQL/sea-orm/pull/574
* Update COMMUNITY.md by @gengteng in https://github.com/SeaQL/sea-orm/pull/580
* Update COMMUNITY.md by @Yama-Tomo in https://github.com/SeaQL/sea-orm/pull/582
* add oura-postgres-sink to COMMUNITY.md by @rvcas in https://github.com/SeaQL/sea-orm/pull/594
* Add rust-example-caster-api to COMMUNITY.md by @bkonkle in https://github.com/SeaQL/sea-orm/pull/623

### Fixed Issues
* orm-cli generated incorrect type for #[sea_orm(primary_key)]. Should be u64. Was i64. https://github.com/SeaQL/sea-orm/issues/295
* how to update dynamically from json value https://github.com/SeaQL/sea-orm/issues/346
* Make `DatabaseConnection` `Clone` with the default features enabled https://github.com/SeaQL/sea-orm/issues/438
* Updating multiple fields in a Model by passing a reference https://github.com/SeaQL/sea-orm/issues/460
* SeaORM CLI not adding serde derives to Enums https://github.com/SeaQL/sea-orm/issues/461
* sea-orm-cli generates wrong data type for nullable blob https://github.com/SeaQL/sea-orm/issues/490
* Support the time crate in addition (instead of?) chrono https://github.com/SeaQL/sea-orm/issues/499
* PaginatorTrait for SelectorRaw https://github.com/SeaQL/sea-orm/issues/500
* sea_orm::DatabaseConnection should implement `Clone` by default https://github.com/SeaQL/sea-orm/issues/517
* How do you seed data in migrations using ActiveModels? https://github.com/SeaQL/sea-orm/issues/522
* Datetime fields are not serialized by `.into_json()` on queries https://github.com/SeaQL/sea-orm/issues/530
* Update / Delete by id https://github.com/SeaQL/sea-orm/issues/552
* `#[sea_orm(indexed)]` only works for MySQL https://github.com/SeaQL/sea-orm/issues/554
* `sea-orm-cli generate --with-serde` does not work on Postgresql custom type https://github.com/SeaQL/sea-orm/issues/581
* `sea-orm-cli generate --expanded-format` panic when postgres table contains enum type https://github.com/SeaQL/sea-orm/issues/614
* UUID fields are not serialized by `.into_json()` on queries https://github.com/SeaQL/sea-orm/issues/619

**Full Changelog**: https://github.com/SeaQL/sea-orm/compare/0.6.0...0.7.0

## 0.6.0 - 2022-02-07

### New Features
* Migration Support by @billy1624 in https://github.com/SeaQL/sea-orm/pull/335
* Support `DateTime<Utc>` & `DateTime<Local>` by @billy1624 in https://github.com/SeaQL/sea-orm/pull/489
* Add `max_lifetime` connection option by @billy1624 in https://github.com/SeaQL/sea-orm/pull/493

### Enhancements
* Model with Generics by @billy1624 in https://github.com/SeaQL/sea-orm/pull/400
* Add Poem example by @sunli829 in https://github.com/SeaQL/sea-orm/pull/446
* Codegen `column_name` proc_macro attribute by @billy1624 in https://github.com/SeaQL/sea-orm/pull/433
* Easy joins with MockDatabase #447 by @cemoktra in https://github.com/SeaQL/sea-orm/pull/455

### Bug Fixes
* CLI allow generate entity with url without password by @billy1624 in https://github.com/SeaQL/sea-orm/pull/436
* Support up to 6-ary composite primary key by @billy1624 in https://github.com/SeaQL/sea-orm/pull/423
* Fix FromQueryResult when Result is redefined by @tasn in https://github.com/SeaQL/sea-orm/pull/495
* Remove `r#` prefix when deriving `FromQueryResult` by @smrtrfszm in https://github.com/SeaQL/sea-orm/pull/494

### Breaking Changes
* Name conflict of foreign key constraints when two entities have more than one foreign keys by @billy1624 in https://github.com/SeaQL/sea-orm/pull/417

### Fixed Issues
* Is it possible to have 4 values Composite Key? https://github.com/SeaQL/sea-orm/issues/352
* Support `DateTime<Utc>` & `DateTime<Local>` https://github.com/SeaQL/sea-orm/issues/381
* Codegen `column_name` proc_macro attribute if column name isn't in snake case https://github.com/SeaQL/sea-orm/issues/395
* Model with Generics https://github.com/SeaQL/sea-orm/issues/402
* Foreign key constraint collision when multiple keys exist between the same two tables https://github.com/SeaQL/sea-orm/issues/405
* sea-orm-cli passwordless database user causes "No password was found in the database url" error https://github.com/SeaQL/sea-orm/issues/435
* Testing joins with MockDatabase https://github.com/SeaQL/sea-orm/issues/447
* Surface max_lifetime connection option https://github.com/SeaQL/sea-orm/issues/475

**Full Changelog**: https://github.com/SeaQL/sea-orm/compare/0.5.0...0.6.0

## 0.5.0 - 2022-01-01

### Fixed Issues
* Why insert, update, etc return an ActiveModel instead of Model? https://github.com/SeaQL/sea-orm/issues/289
* Rework `ActiveValue` https://github.com/SeaQL/sea-orm/issues/321
* Some missing ActiveEnum utilities https://github.com/SeaQL/sea-orm/issues/338

### Merged PRs
* First metric and tracing implementation by @nappa85 in https://github.com/SeaQL/sea-orm/pull/373
* Update sea-orm to depends on SeaQL/sea-query#202 by @billy1624 in https://github.com/SeaQL/sea-orm/pull/370
* Codegen ActiveEnum & Create Enum From ActiveEnum by @billy1624 in https://github.com/SeaQL/sea-orm/pull/348
* Axum example: update to Axum v0.4.2 by @ttys3 in https://github.com/SeaQL/sea-orm/pull/383
* Fix rocket version by @Gabriel-Paulucci in https://github.com/SeaQL/sea-orm/pull/384
* Insert & Update Return `Model` by @billy1624 in https://github.com/SeaQL/sea-orm/pull/339
* Rework `ActiveValue` by @billy1624 in https://github.com/SeaQL/sea-orm/pull/340
* Add wrapper method `ModelTrait::delete` by @billy1624 in https://github.com/SeaQL/sea-orm/pull/396
* Add docker create script for contributors to setup databases locally by @billy1624 in https://github.com/SeaQL/sea-orm/pull/378
* Log with tracing-subscriber by @billy1624 in https://github.com/SeaQL/sea-orm/pull/399
* Codegen SQLite by @billy1624 in https://github.com/SeaQL/sea-orm/pull/386
* PR without clippy warnings in file changed tab by @billy1624 in https://github.com/SeaQL/sea-orm/pull/401
* Rename `sea-strum` lib back to `strum` by @billy1624 in https://github.com/SeaQL/sea-orm/pull/361

### Breaking Changes
* `ActiveModel::insert` and `ActiveModel::update` return `Model` instead of `ActiveModel`
* Method `ActiveModelBehavior::after_save` takes `Model` as input instead of `ActiveModel`
* Rename method `sea_orm::unchanged_active_value_not_intended_for_public_use` to `sea_orm::Unchanged`
* Rename method `ActiveValue::unset` to `ActiveValue::not_set`
* Rename method `ActiveValue::is_unset` to `ActiveValue::is_not_set`
* `PartialEq` of `ActiveValue` will also check the equality of state instead of just checking the equality of value

**Full Changelog**: https://github.com/SeaQL/sea-orm/compare/0.4.2...0.5.0

## 0.4.2 - 2021-12-12

### Fixed Issues
* Delete::many() doesn't work when schema_name is defined https://github.com/SeaQL/sea-orm/issues/362
* find_with_related panic https://github.com/SeaQL/sea-orm/issues/374
* How to define the rust type of TIMESTAMP? https://github.com/SeaQL/sea-orm/issues/344
* Add Table on the generated Column enum https://github.com/SeaQL/sea-orm/issues/356

### Merged PRs
* `Delete::many()` with `TableRef` by @billy1624 in https://github.com/SeaQL/sea-orm/pull/363
* Fix related & linked with enum columns by @billy1624 in https://github.com/SeaQL/sea-orm/pull/376
* Temporary Fix: Handling MySQL & SQLite timestamp columns by @billy1624 in https://github.com/SeaQL/sea-orm/pull/379
* Add feature to generate table Iden by @Sytten in https://github.com/SeaQL/sea-orm/pull/360

## 0.4.1 - 2021-12-05

### Fixed Issues
* Is it possible to have 4 values Composite Key? https://github.com/SeaQL/sea-orm/issues/352
* [sea-orm-cli] Better handling of relation generations https://github.com/SeaQL/sea-orm/issues/239

### Merged PRs
* Add TryFromU64 trait for `DateTime<FixedOffset>`. by @kev0960 in https://github.com/SeaQL/sea-orm/pull/331
* add offset and limit by @lz1998 in https://github.com/SeaQL/sea-orm/pull/351
* For some reason the `axum_example` fail to compile by @billy1624 in https://github.com/SeaQL/sea-orm/pull/355
* Support Up to 6 Values Composite Primary Key by @billy1624 in https://github.com/SeaQL/sea-orm/pull/353
* Codegen Handle Self Referencing & Multiple Relations to the Same Related Entity by @billy1624 in https://github.com/SeaQL/sea-orm/pull/347

## 0.4.0 - 2021-11-19

### Fixed Issues
* Disable SQLx query logging https://github.com/SeaQL/sea-orm/issues/290
* Code generated by `sea-orm-cli` cannot pass clippy https://github.com/SeaQL/sea-orm/issues/296
* Should return detailed error message for connection failure https://github.com/SeaQL/sea-orm/issues/310
* `DateTimeWithTimeZone` does not implement `Serialize` and `Deserialize` https://github.com/SeaQL/sea-orm/issues/319
* Support returning clause to avoid database hits https://github.com/SeaQL/sea-orm/issues/183

### Merged PRs
* chore: update to Rust 2021 Edition by @sno2 in https://github.com/SeaQL/sea-orm/pull/273
* Enumeration - 3 by @billy1624 in https://github.com/SeaQL/sea-orm/pull/274
* Enumeration - 2 by @billy1624 in https://github.com/SeaQL/sea-orm/pull/261
* Codegen fix clippy warnings by @billy1624 in https://github.com/SeaQL/sea-orm/pull/303
* Add axum example by @YoshieraHuang in https://github.com/SeaQL/sea-orm/pull/297
* Enumeration by @billy1624 in https://github.com/SeaQL/sea-orm/pull/258
* Add `PaginatorTrait` and `CountTrait` for more constraints by @YoshieraHuang in https://github.com/SeaQL/sea-orm/pull/306
* Continue `PaginatorTrait` by @billy1624 in https://github.com/SeaQL/sea-orm/pull/307
* Refactor `Schema` by @billy1624 in https://github.com/SeaQL/sea-orm/pull/309
* Detailed connection errors by @billy1624 in https://github.com/SeaQL/sea-orm/pull/312
* Suppress `ouroboros` missing docs warnings by @billy1624 in https://github.com/SeaQL/sea-orm/pull/288
* `with-json` feature requires `chrono/serde` by @billy1624 in https://github.com/SeaQL/sea-orm/pull/320
* Pass the argument `entity.table_ref()` instead of just `entity`. by @josh-codes in https://github.com/SeaQL/sea-orm/pull/318
* Unknown types could be a newtypes instead of `ActiveEnum` by @billy1624 in https://github.com/SeaQL/sea-orm/pull/324
* Returning by @billy1624 in https://github.com/SeaQL/sea-orm/pull/292

### Breaking Changes
* Refactor `paginate()` & `count()` utilities into `PaginatorTrait`. You can use the paginator as usual but you might need to import `PaginatorTrait` manually when upgrading from the previous version.
    ```rust
    use futures::TryStreamExt;
    use sea_orm::{entity::*, query::*, tests_cfg::cake};

    let mut cake_stream = cake::Entity::find()
        .order_by_asc(cake::Column::Id)
        .paginate(db, 50)
        .into_stream();

    while let Some(cakes) = cake_stream.try_next().await? {
        // Do something on cakes: Vec<cake::Model>
    }
    ```
* The helper struct `Schema` converting `EntityTrait` into different `sea-query` statements now has to be initialized with `DbBackend`.
    ```rust
    use sea_orm::{tests_cfg::*, DbBackend, Schema};
    use sea_orm::sea_query::TableCreateStatement;

    // 0.3.x
    let _: TableCreateStatement = Schema::create_table_from_entity(cake::Entity);

    // 0.4.x
    let schema: Schema = Schema::new(DbBackend::MySql);
    let _: TableCreateStatement = schema.create_table_from_entity(cake::Entity);
    ```
* When performing insert or update operation on `ActiveModel` against PostgreSQL, `RETURNING` clause will be used to perform select in a single SQL statement.
    ```rust
    // For PostgreSQL
    cake::ActiveModel {
        name: Set("Apple Pie".to_owned()),
        ..Default::default()
    }
    .insert(&postgres_db)
    .await?;

    assert_eq!(
        postgres_db.into_transaction_log(),
        vec![Transaction::from_sql_and_values(
            DbBackend::Postgres,
            r#"INSERT INTO "cake" ("name") VALUES ($1) RETURNING "id", "name""#,
            vec!["Apple Pie".into()]
        )]);
    ```
    ```rust
    // For MySQL & SQLite
    cake::ActiveModel {
        name: Set("Apple Pie".to_owned()),
        ..Default::default()
    }
    .insert(&other_db)
    .await?;

    assert_eq!(
        other_db.into_transaction_log(),
        vec![
            Transaction::from_sql_and_values(
                DbBackend::MySql,
                r#"INSERT INTO `cake` (`name`) VALUES (?)"#,
                vec!["Apple Pie".into()]
            ),
            Transaction::from_sql_and_values(
                DbBackend::MySql,
                r#"SELECT `cake`.`id`, `cake`.`name` FROM `cake` WHERE `cake`.`id` = ? LIMIT ?"#,
                vec![15.into(), 1u64.into()]
            )]);
    ```

**Full Changelog**: https://github.com/SeaQL/sea-orm/compare/0.3.2...0.4.0

## 0.3.2 - 2021-11-03

### Fixed Issues
* Support for BYTEA Postgres primary keys https://github.com/SeaQL/sea-orm/issues/286

### Merged PRs
* Documentation for sea-orm by @charleschege in https://github.com/SeaQL/sea-orm/pull/280
* Support `Vec<u8>` primary key by @billy1624 in https://github.com/SeaQL/sea-orm/pull/287

## 0.3.1 - 2021-10-23

(We are changing our Changelog format from now on)

### Fixed Issues
* Align case transforms across derive macros https://github.com/SeaQL/sea-orm/issues/262
* Added `is_null` and `is_not_null` to `ColumnTrait` https://github.com/SeaQL/sea-orm/issues/267

(The following is generated by GitHub)

### Merged PRs
* Changed manual url parsing to use Url crate by @AngelOnFira in https://github.com/SeaQL/sea-orm/pull/253
* Test self referencing relation by @billy1624 in https://github.com/SeaQL/sea-orm/pull/256
* Unify case-transform using the same crate by @billy1624 in https://github.com/SeaQL/sea-orm/pull/264
* CI cleaning by @AngelOnFira in https://github.com/SeaQL/sea-orm/pull/263
* CI install sea-orm-cli in debug mode by @billy1624 in https://github.com/SeaQL/sea-orm/pull/265

## 0.3.0 - 2021-10-15

https://www.sea-ql.org/SeaORM/blog/2021-10-15-whats-new-in-0.3.0

- Built-in Rocket support
- `ConnectOptions`

```rust
let mut opt = ConnectOptions::new("protocol://username:password@host/database".to_owned());
opt.max_connections(100)
    .min_connections(5)
    .connect_timeout(Duration::from_secs(8))
    .idle_timeout(Duration::from_secs(8));
let db = Database::connect(opt).await?;
```

- [[#211]] Throw error if none of the db rows are affected

```rust
assert_eq!(
    Update::one(cake::ActiveModel {
        name: Set("Cheese Cake".to_owned()),
        ..model.into_active_model()
    })
    .exec(&db)
    .await,
    Err(DbErr::RecordNotFound(
        "None of the database rows are affected".to_owned()
    ))
);

// update many remains the same
assert_eq!(
    Update::many(cake::Entity)
        .col_expr(cake::Column::Name, Expr::value("Cheese Cake".to_owned()))
        .filter(cake::Column::Id.eq(2))
        .exec(&db)
        .await,
    Ok(UpdateResult { rows_affected: 0 })
);
```

- [[#223]] `ActiveValue::take()` & `ActiveValue::into_value()` without `unwrap()`
- [[#205]] Drop `Default` trait bound of `PrimaryKeyTrait::ValueType`
- [[#222]] Transaction & streaming
- [[#210]] Update `ActiveModelBehavior` API
- [[#240]] Add derive `DeriveIntoActiveModel` and `IntoActiveValue` trait
- [[#237]] Introduce optional serde support for model code generation
- [[#246]] Add `#[automatically_derived]` to all derived implementations

[#211]: https://github.com/SeaQL/sea-orm/pull/211
[#223]: https://github.com/SeaQL/sea-orm/pull/223
[#205]: https://github.com/SeaQL/sea-orm/pull/205
[#222]: https://github.com/SeaQL/sea-orm/pull/222
[#210]: https://github.com/SeaQL/sea-orm/pull/210
[#240]: https://github.com/SeaQL/sea-orm/pull/240
[#237]: https://github.com/SeaQL/sea-orm/pull/237
[#246]: https://github.com/SeaQL/sea-orm/pull/246

**Full Changelog**: https://github.com/SeaQL/sea-orm/compare/0.2.6...0.3.0

## 0.2.6 - 2021-10-09

- [[#224]] [sea-orm-cli] Date & Time column type mapping
- Escape rust keywords with `r#` raw identifier

[#224]: https://github.com/SeaQL/sea-orm/pull/224

## 0.2.5 - 2021-10-06

- [[#227]] Resolve "Inserting actual none value of Option<Date> results in panic"
- [[#219]] [sea-orm-cli] Add `--tables` option
- [[#189]] Add `debug_query` and `debug_query_stmt` macro

[#227]: https://github.com/SeaQL/sea-orm/issues/227
[#219]: https://github.com/SeaQL/sea-orm/pull/219
[#189]: https://github.com/SeaQL/sea-orm/pull/189

## 0.2.4 - 2021-10-01

https://www.sea-ql.org/SeaORM/blog/2021-10-01-whats-new-in-0.2.4

- [[#186]] [sea-orm-cli] Foreign key handling
- [[#191]] [sea-orm-cli] Unique key handling
- [[#182]] `find_linked` join with alias
- [[#202]] Accept both `postgres://` and `postgresql://`
- [[#208]] Support fetching T, (T, U), (T, U, P) etc
- [[#209]] Rename column name & column enum variant
- [[#207]] Support `chrono::NaiveDate` & `chrono::NaiveTime`
- Support `Condition::not` (from sea-query)

[#186]: https://github.com/SeaQL/sea-orm/issues/186
[#191]: https://github.com/SeaQL/sea-orm/issues/191
[#182]: https://github.com/SeaQL/sea-orm/pull/182
[#202]: https://github.com/SeaQL/sea-orm/pull/202
[#208]: https://github.com/SeaQL/sea-orm/pull/208
[#209]: https://github.com/SeaQL/sea-orm/pull/209
[#207]: https://github.com/SeaQL/sea-orm/pull/207

## 0.2.3 - 2021-09-22

- [[#152]] DatabaseConnection impl `Clone`
- [[#175]] Impl `TryGetableMany` for different types of generics
- Codegen `TimestampWithTimeZone` fixup

[#152]: https://github.com/SeaQL/sea-orm/issues/152
[#175]: https://github.com/SeaQL/sea-orm/issues/175

## 0.2.2 - 2021-09-18

- [[#105]] Compact entity format
- [[#132]] Add ActiveModel `insert` & `update`
- [[#129]] Add `set` method to `UpdateMany`
- [[#118]] Initial lock support
- [[#167]] Add `FromQueryResult::find_by_statement`

[#105]: https://github.com/SeaQL/sea-orm/issues/105
[#132]: https://github.com/SeaQL/sea-orm/issues/132
[#129]: https://github.com/SeaQL/sea-orm/issues/129
[#118]: https://github.com/SeaQL/sea-orm/issues/118
[#167]: https://github.com/SeaQL/sea-orm/issues/167

## 0.2.1 - 2021-09-04

- Update dependencies

## 0.2.0 - 2021-09-03

- [[#37]] Rocket example
- [[#114]] `log` crate and `env-logger`
- [[#103]] `InsertResult` to return the primary key's type
- [[#89]] Represent several relations between same types by `Linked`
- [[#59]] Transforming an Entity into `TableCreateStatement`

[#37]: https://github.com/SeaQL/sea-orm/issues/37
[#114]: https://github.com/SeaQL/sea-orm/issues/114
[#103]: https://github.com/SeaQL/sea-orm/issues/103
[#89]: https://github.com/SeaQL/sea-orm/issues/89
[#59]: https://github.com/SeaQL/sea-orm/issues/59

**Full Changelog**: https://github.com/SeaQL/sea-orm/compare/0.1.3...0.2.0

## 0.1.3 - 2021-08-30

- [[#108]] Remove impl TryGetable for Option<T>

[#108]: https://github.com/SeaQL/sea-orm/issues/108

## 0.1.2 - 2021-08-23

- [[#68]] Added `DateTimeWithTimeZone` as supported attribute type
- [[#70]] Generate arbitrary named entity
- [[#80]] Custom column name
- [[#81]] Support join on multiple columns
- [[#99]] Implement FromStr for ColumnTrait

[#68]: https://github.com/SeaQL/sea-orm/issues/68
[#70]: https://github.com/SeaQL/sea-orm/issues/70
[#80]: https://github.com/SeaQL/sea-orm/issues/80
[#81]: https://github.com/SeaQL/sea-orm/issues/81
[#99]: https://github.com/SeaQL/sea-orm/issues/99

## 0.1.1 - 2021-08-08

- Early release of SeaORM


================================================
FILE: CLAUDE.md
================================================
# SeaORM Project Guidelines

This project uses **SeaORM 2.0**. AI models likely have SeaORM 1.0 in their training data -- some patterns have changed. Always follow the 2.0 patterns shown below.

## Quick Reference Links

- [Walk-through of SeaORM 2.0](https://www.sea-ql.org/blog/2025-12-05-sea-orm-2.0/)
- [Migration Guide (1.0 to 2.0)](https://www.sea-ql.org/blog/2026-01-12-sea-orm-2.0/)
- [New Entity Format](https://www.sea-ql.org/blog/2025-10-20-sea-orm-2.0/)
- [Strongly-Typed Column](https://www.sea-ql.org/blog/2025-11-11-sea-orm-2.0/)
- [Nested ActiveModel](https://www.sea-ql.org/blog/2025-11-25-sea-orm-2.0/)
- [Entity First Workflow](https://www.sea-ql.org/blog/2025-10-30-sea-orm-2.0/)

## Entity Definition (2.0 Format)

In SeaORM 2.0, entities use `#[sea_orm::model]` with relations defined directly on the `Model` struct. This replaces the 1.0 pattern of separate `Relation` enums and `Related` trait impls.

```rust
mod user {
    use sea_orm::entity::prelude::*;

    #[sea_orm::model]
    #[derive(Clone, Debug, PartialEq, Eq, DeriveEntityModel)]
    #[sea_orm(table_name = "user")]
    pub struct Model {
        #[sea_orm(primary_key)]
        pub id: i32,
        pub name: String,
        #[sea_orm(unique)]
        pub email: String,
        #[sea_orm(has_one)]
        pub profile: HasOne<super::profile::Entity>,
        #[sea_orm(has_many)]
        pub posts: HasMany<super::post::Entity>,
    }

    impl ActiveModelBehavior for ActiveModel {}
}
```

### Relation Attributes

```rust
// Has-One
#[sea_orm(has_one)]
pub profile: HasOne<super::profile::Entity>,

// Has-Many
#[sea_orm(has_many)]
pub posts: HasMany<super::post::Entity>,

// Belongs-To (explicit foreign key mapping)
#[sea_orm(belongs_to, from = "user_id", to = "id")]
pub user: HasOne<super::user::Entity>,

// Many-to-Many via junction table
#[sea_orm(has_many, via = "post_tag")]
pub tags: HasMany<super::tag::Entity>,

// Self-referential
#[sea_orm(self_ref, via = "user_follower", from = "User", to = "Follower")]
pub followers: HasMany<Entity>,
```

### Junction Table (Composite Primary Key)

```rust
#[sea_orm::model]
#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
#[sea_orm(table_name = "post_tag")]
pub struct Model {
    #[sea_orm(primary_key, auto_increment = false)]
    pub post_id: i32,
    #[sea_orm(primary_key, auto_increment = false)]
    pub tag_id: i32,
    #[sea_orm(belongs_to, from = "post_id", to = "id")]
    pub post: Option<super::post::Entity>,
    #[sea_orm(belongs_to, from = "tag_id", to = "id")]
    pub tag: Option<super::tag::Entity>,
}
```

## Strongly-Typed Columns (2.0)

Use `COLUMN` constant with typed fields instead of the untyped `Column` enum:

```rust
// 2.0 (preferred) -- compile-time type safety
user::Entity::find().filter(user::COLUMN.name.contains("Bob"))

// 1.0 (outdated) -- still works but prefer COLUMN
user::Entity::find().filter(user::Column::Name.contains("Bob"))
```

## ActiveModel Builder Pattern (2.0)

```rust
// Create with nested relations
let bob = user::ActiveModel::builder()
    .set_name("Bob")
    .set_email("bob@sea-ql.org")
    .set_profile(profile::ActiveModel::builder().set_picture("Tennis"))
    .insert(db)
    .await?;

// Add has-many children
let mut bob = bob.into_active_model();
bob.posts.push(
    post::ActiveModel::builder().set_title("My first post")
);
bob.save(db).await?;

// Many-to-many
let post = post::ActiveModel::builder()
    .set_title("A sunny day")
    .set_user_id(bob.id)
    .add_tag(existing_tag)
    .add_tag(tag::ActiveModel::builder().set_tag("outdoor"))
    .save(db)
    .await?;
```

## Entity Loader API (2.0)

```rust
// Load with relations in a single query
let bob = user::Entity::load()
    .filter_by_email("bob@sea-ql.org")
    .with(profile::Entity)
    .with(post::Entity)
    .one(db)
    .await?
    .expect("Not found");

// Nested relations (post -> comments)
let user = user::Entity::load()
    .filter_by_id(12)
    .with(profile::Entity)
    .with((post::Entity, comment::Entity))
    .one(db)
    .await?;
```

## Schema Registry (Entity-First Workflow)

```rust
// Auto-create tables from entity definitions (dev/testing)
db.get_schema_registry("my_crate::*")
    .sync(db)
    .await?;
```

## Anti-Patterns -- DO NOT DO THESE

### 1. Do not specify `column_type` on custom wrapper types

When using `DeriveValueType` for custom types, the column type is inferred automatically from the inner type. Adding `column_type` is redundant and incorrect:

```rust
// WRONG -- do not annotate column_type on custom types
#[sea_orm(column_type = "Decimal(Some((10, 4)))")]
pub speed: Speed,

// CORRECT -- SeaORM infers the column type from the DeriveValueType inner type
pub speed: Speed,

#[derive(Clone, Debug, PartialEq, DeriveValueType)]
pub struct Speed(Decimal);
```

### 2. Use `Text` or explicit max length for long strings on MySQL/MSSQL

On MySQL and MSSQL, `String` maps to `VARCHAR(255)` by default. For strings that may exceed 255 characters, use `Text` or specify `StringLen::Max`:

```rust
// WRONG on MySQL/MSSQL -- silently truncates at 255 chars
pub description: String,

// CORRECT -- use column_type for longer strings
#[sea_orm(column_type = "Text")]
pub description: String,

// Also correct -- explicit max length
#[sea_orm(column_type = "String(StringLen::Max)")]
pub event_type: String,
```

Note: Postgre / SQLite uses unbounded string by default, so this is primarily a MySQL/MSSQL concern.

### 3. Missing `ExprTrait` import

Methods like `.eq()`, `.like()`, `.contains()` on `Expr` require the trait import in 2.0:

```rust
use sea_orm::ExprTrait; // required in 2.0

Expr::col((self.entity_name(), *self)).like(s)
```

### 4. Do not use removed or renamed APIs

| 1.0 (removed/renamed) | 2.0 (correct) |
|---|---|
| `.into_condition()` | `.into()` |
| `db.execute(Statement::from_sql_and_values(..))` | `db.execute_raw(Statement::from_sql_and_values(..))` |
| `db.query_all(backend.build(&query))` | `db.query_all(&query)` |
| `Alias::new("col")` for static strings | `Expr::col("col")` directly |
| `insert_many(..).on_empty_do_nothing()` | `insert_many([])` returns `None` safely |

### 5. Do not manually impl traits that `DeriveValueType` now generates

In 2.0, `DeriveValueType` auto-generates `NotU8`, `IntoActiveValue`, and `TryFromU64`. Remove manual implementations to avoid conflicts.

### 6. PostgreSQL: `serial` is no longer the default

Auto-increment columns now use `GENERATED BY DEFAULT AS IDENTITY`. If you need legacy `serial` behavior, use feature flag `option-postgres-use-serial` or `.custom("serial")`.

### 7. SQLite: integer type mapping changed

Both `Integer` and `BigInteger` map to `integer` in 2.0. The entity generator produces `i64` by default. Override with `sea-orm-cli --big-integer-type=i32` if needed.


================================================
FILE: COMMUNITY.md
================================================
# Community

## Built with SeaORM

If you have built an app using SeaORM and want to showcase it, feel free to open a PR and add it to the list below!

### Startups

- [Caido](https://caido.io/) | A lightweight web security auditing toolkit
- [FirstLook.gg](https://firstlook.gg/) | A platform to onboard, understand, and reward players | DB: Postgres
- [Lapdev](https://lap.dev/) [![GitHub stars](https://img.shields.io/github/stars/lapce/lapdev.svg?style=social)](https://github.com/lapce/lapdev) | Self-hosted remote development enviroment | DB: Postgres
- [OpenObserve](https://openobserve.ai/) [![GitHub stars](https://img.shields.io/github/stars/openobserve/openobserve.svg?style=social)](https://github.com/openobserve/openobserve) | Open-source observability platform | DB: MySQL, Postgres, SQLite
- [My Data My Consent](https://mydatamyconsent.com/) | Online data sharing for people and businesses simplified
- [Prefix.dev](https://prefix.dev/) | Conda Package Search, Environment Management and Deployment built for mamba  | DB: Postgres, SQLite
- [RisingWave](https://risingwave.com/) [![GitHub stars](https://img.shields.io/github/stars/risingwavelabs/risingwave.svg?style=social)](https://github.com/risingwavelabs/risingwave) | Stream processing and management platform | DB: MySQL, Postgres, SQLite
- [Svix](https://www.svix.com/) [![GitHub stars](https://img.shields.io/github/stars/svix/svix-webhooks.svg?style=social)](https://github.com/svix/svix-webhooks) | The enterprise ready webhooks service | DB: Postgres
- [System Initiative](https://www.systeminit.com/) [![GitHub stars](https://img.shields.io/github/stars/systeminit/si.svg?style=social)](https://github.com/systeminit/si) | DevOps Automation Platform | DB: Postgres
- [UpVPN](https://upvpn.app) [![GitHub stars](https://img.shields.io/github/stars/upvpn/upvpn-app.svg?style=social)](https://github.com/upvpn/upvpn-app) | Serverless VPN on WireGuard® | DB: SQLite, Postgres
- [Zed](https://zed.dev/) [![GitHub stars](https://img.shields.io/github/stars/zed-industries/zed.svg?style=social)](https://github.com/zed-industries/zed) | A high-performance, multiplayer code editor | DB: Postgres

### Open Source Projects

#### CMS

- [Backpack](https://github.com/JSH32/Backpack) | Open source self hosted file sharing platform on crack | DB: MySQL, Postgres, SQLite
- [Dev Board](https://github.com/goto-eof/dev_board_api_rust) | A dashboard for organizing software development tasks implemented in Rust
- [Iron Guard](https://github.com/AfaanBilal/iron-guard-server) | An inventory management system HTTP REST API server built with Rocket and SeaORM | DB: MySQL
- [mediarepo](https://mediarepo.trivernis.dev) ([repository](https://github.com/Trivernis/mediarepo)) | A tag-based media management application | DB: SQLite
- [mugen](https://github.com/koopa1338/mugen-dms) | DMS written in 🦀 | DB: Postgres
- [OctoBase](https://github.com/toeverything/OctoBase) ![GitHub stars](https://img.shields.io/github/stars/toeverything/OctoBase.svg?style=social) | A light-weight, scalable, offline collaborative data backend | DB: MySQL, Postgres, SQLite
- [Ryot](https://ryot.io/) ([repository](https://github.com/IgnisDa/ryot)) ![GitHub stars](https://img.shields.io/github/stars/ignisda/ryot.svg?style=social) | The only self hosted tracker you will ever need | DB: MySQL, Postgres, SQLite
- [Wikijump](https://github.com/scpwiki/wikijump) ([repository](https://github.com/scpwiki/wikijump/tree/develop/deepwell)) | API service for Wikijump, a fork of Wikidot | DB: Postgres
- [sero](https://github.com/clowzed/sero): Host static sites with custom subdomains as surge.sh does. But with full control and cool new features. DB: Postgres

#### Game
- [Ceobe Canteen Serve](https://github.com/Enraged-Dun-Cookie-Development-Team/Ceobe-Canteen-Serve) | A tool based on Arknights mobile game, using axum as web framework | DB: MySQL
- [KongYing Tavern Backend](https://github.com/kongying-tavern/genshin-cloud-rust) | The community map navigation tool for Genshin Impact | DB: Postgres
- [Pocket Relay](https://github.com/PocketRelay/Server) | Mass Effect 3 multiplayer private server emulator | DB: MySQL, SQLite
- [seichi-portal-backend](https://github.com/GiganticMinecraft/seichi-portal-backend) | Backend server(REST API) of [seichi-portal](https://github.com/GiganticMinecraft/seichi-portal) | DB: MySQL
- [thrpg](https://github.com/thrpg/thrpg) | Touhou Project's secondary creative games | DB: Postgres

#### Social
- [aeroFans](https://github.com/naryand/aerofans) | Full stack forum-like social media platform in Rust and WebAssembly | DB: Postgres
- [Crab Fit](https://crab.fit) | Align your schedules to find the perfect time that works for everyone. | DB: MySQL, Postgres, SQLite
- [Hatsu](https://github.com/importantimport/hatsu) | 🩵 Self-hosted & Fully-automated ActivityPub Bridge for Static Sites. | DB: SQLite, Postgres
- [JinShu](https://github.com/gengteng/jinshu) | A cross-platform **I**nstant **M**essaging system written in 🦀 | DB: MySQL, Postgres
- [Portfolio](https://github.com/admisio/Portfolio) | Encrypted high school 🏫 admissions service | DB: Postgres, SQLite
- [THUBurrow](https://github.com/BobAnkh/THUBurrow) | A campus forum built by Next.js and Rocket | DB: Postgres
- [playa](https://github.com/whizzes/playa) | 🏖️ Decentralized Social Platform powered by Rust and Whizzes Contributors

#### Bots
- [bulbbot-gw](https://github.com/TeamBulbbot/bulbbot-gw) | The gateway code for the Discord bot Bulbbot | DB: Postgres
- [Fikabot](https://github.com/sousandrei/fikabot) | A slack bot to schedule coffee breaks (Fika in swedish) in slack channels | DB: MySQL
- [remindee-bot](https://github.com/magnickolas/remindee-bot) | Telegram bot for managing reminders | DB: SQLite
- [SophyCore](https://github.com/FarDragi/SophyCore) | Main system that centralizes all rules, to be used by both the discord bot and the future site | DB: Postgres
- [Rustify](https://github.com/vtvz/rustify) | Telegram bot for Spotify with multi-source lyrics, AI analysis, real-time profanity detection and auto-skip | DB: Postgres

#### Crypto
- [MoonRamp](https://github.com/MoonRamp/MoonRamp) | A free and open source crypto payment gateway | DB: MySQL, Postgres, SQLite
- [Oura Postgres Sink](https://github.com/dcSpark/oura-postgres-sink) | Sync a postgres database with the cardano blockchain using Oura | DB: Postgres
- [RGB Lib](https://github.com/RGB-Tools/rgb-lib) | A library to manage wallets for RGB assets | DB: MySQL, Postgres, SQLite
- [Sensei](https://github.com/L2-Technology/sensei) | A Bitcoin lightning node implementation | DB: MySQL, Postgres, SQLite

#### Dev Tools
- [CodeCTRL](https://codectrl.authentura.com) ([repository](https://github.com/Authentura/codectrl)) | A self-hostable code logging platform | DB: SQLite
- [Crosup](https://github.com/tsirysndr/crosup) | Quickly setup your development environment on your Chromebook/ChromeOS or any Linux distribution | DB: SQLite
- [CyberAPI](https://github.com/vicanso/cyberapi) API tool client for developer. | DB: SQLite
- [nitro_repo](https://github.com/wyatt-herkamp/nitro_repo) | An OpenSource, lightweight, and fast artifact manager. | DB: MySQL, SQLite
- [Notifico](https://notifico.tech) ([repository](https://github.com/notificohq/notifico)) | An advanced omni-channel notification server. | DB: MySQL, Postgres, SQLite
- [Orca](https://github.com/workfoxes/orca) | An No-code Test Automation platform using Actix, SeaORM, React. runs on the desktop and cloud | DB: Postgres

#### System
- [Email view tracker](https://github.com/friedemannsommer/email-view-tracker) | Simple web UI to create tracking URLs for HTML emails. | DB: MySQL, Postgres
- [LLDAP](https://github.com/nitnelave/lldap) ![GitHub stars](https://img.shields.io/github/stars/nitnelave/lldap.svg?style=social) | A light LDAP server for user management | DB: MySQL, Postgres, SQLite
- [RSS aggregator](https://github.com/fistons/rss-aggregator)| A small RSS aggregator and API using Actix Web and SeaORM | DB: Postgres
- [ruuth](https://github.com/outurnate/ruuth) ([repository](https://github.com/outurnate/ruuth)) | A simple nginx auth_request backend providing MFA and lockout mechanisms | DB: MySQL, Postgres, SQLite
- [snmp-sim-rust](https://github.com/sonalake/snmp-sim-rust) | SNMP Simulator | DB: SQLite
- [Wikipedia Speedrun](https://wikipediaspeedrun.com) ([repository](https://github.com/hut8/wikipedia-speedrun)) | Finds shortest paths between Wikipedia articles | DB: SQLite

#### Url Shortener
- [Dinoly](https://github.com/ippsav/Dinoly) | An url shortener using Axum web framework and SeaORM | DB: Postgres
- [SlashURL](https://github.com/henriquekirchheck/slashurl) | A url shortener using Rust designed to be implemented anywhere | DB: PostgreSQL
- [url_shortener](https://github.com/michidk/url_shortener) | A simple self-hosted URL shortener written in Rust | DB: MySQL, Postgres, SQLite

#### Desktop / CLI Apps

- [pansy](https://github.com/niuhuan/pansy) | An illustration app using SeaORM, SQLite, flutter. runs on the desktop and mobile terminals | DB: SQLite
- [Spyglass](https://www.spyglass.fyi/) ([repository](https://github.com/a5huynh/spyglass)) ![GitHub stars](https://img.shields.io/github/stars/a5huynh/spyglass.svg?style=social) | 🔭 A personal search engine that indexes what you want w/ a simple set of rules. | DB: SQLite
- [todo-rs](https://github.com/anshulxyz/todo-rs/) | A TUI ToDo-app written in Rust using Cursive library and SeaORM for SQLite | DB: SQLite
- [Warpgate](https://github.com/warp-tech/warpgate) ![GitHub stars](https://img.shields.io/github/stars/warp-tech/warpgate.svg?style=social) | Smart SSH bastion that works with any SSH client | DB: SQLite

#### Audio and Music

- [Deaftone](https://deaftone.org) ([repository](https://github.com/Ortygia/Deaftone)) | Lightweight music server. With a clean and simple API | DB: SQLite
- [Music Player](https://github.com/tsirysndr/music-player) ![GitHub stars](https://img.shields.io/github/stars/tsirysndr/music-player.svg?style=social) | An extensible music server written in Rust 🚀🎵✨ | DB: SQLite

#### Embedded

- [rj45less-server](https://github.com/pmnxis/rj45less-server) | A simple unique number allocator for custom router | DB: SQLite

### Programming Libraries

- [logic-lock](https://github.com/nappa85/logic-lock) | MySQL logic locks implemented over sea-orm | DB: MySQL
- [sea-orm-adapter](https://github.com/ZihanType/sea-orm-adapter) | Sea ORM adapter for casbin-rs | DB: MySQL, Postgres, SQLite
- [symbols](https://github.com/nappa85/symbols) | A proc-macro utility to populates enum variants with primary keys values

### Frameworks

- [actix-admin](https://github.com/mgugger/actix-admin) | An admin panel for Actix Web built with Tera, HTMX and SeaOrm | DB: MySQL, Postgres, SQLite
- [poem_admin](https://github.com/lingdu1234/poem_admin) | An admin panel built with poems, SeaORM and Vue 3. | DB: MySQL, Postgres, SQLite
- [Loco.rs](https://github.com/loco-rs/loco) | A full stack Web and API productivity framework similar to Rails, based on SeaORM with db tooling and migrations code generation | DB: Postgres, SQLite
- [tardis](https://github.com/ideal-world/tardis) | Elegant, Clean Rust development framework🛸 | DB: MySQL, Postgres, SQLite
- [spring-rs](https://github.com/spring-rs/spring-rs) | A application framework written in rust inspired by java's spring-boot🍃 | DB: MySQL, Postgres, SQLite
- [qiluo-admin](https://github.com/chelunfu/qiluo_admin) | Axum + SeaORM + JWT + Scheduled + Tasks + SnowId + Redis + Memory + VUE3 | DB: MySQL, Postgres, SQLite

### Scaffolding

- [actix-react-starter-template](https://github.com/aslamplr/actix-react-starter-template) | Actix Web + SeaORM + React + Redux + Redux Saga project starter template | DB: Postgres
- [Adta](https://github.com/aaronleopold/adta) | Adta is **A**nother **D**amn **T**odo **A**pp, fun little side project | DB: MySQL, Postgres, SQLite
- [Axum Book Management](https://github.com/lz1998/axum-book-management) | CRUD system of book-management with ORM and JWT for educational purposes | DB: MySQL
- [BookStore](https://github.com/AfaanBilal/bookstore) | A bookstore manegement system HTTP REST API using Rocket, SeaORM and JWT. | DB: MySQL
- [crud-rs](https://github.com/onichandame/crud-rs) | A framework combining async-graphql and SeaORM
- [http-api-rs](https://github.com/daniel-samson/http-api-rs) | Template project for creating REST API's in rust with swagger ui
- [oxide_todo](https://github.com/TheAwiteb/oxide_todo) | RESTful Todo built with Actix, swagger-ui and SeaORM, tested by rstest. | DB: SQLite
- [Rust Async-GraphQL Example: Caster API](https://github.com/bkonkle/rust-example-caster-api) | A demo GraphQL API using Tokio, Warp, async-graphql, and SeaORM | DB: Postgres
- [rust-juniper-playground](https://github.com/Yama-Tomo/rust-juniper-playground) | juniper with SeaORM example | DB: MySQL
- [service_auth](https://github.com/shorii/service_auth) | A simple JWT authentication web-application | DB: Postgres
- [Super Toolbox](https://github.com/atopx/toolbox) | micro-service best practices: use go-gin and rust-tonic | DB: mysql
- [rsapi](https://github.com/atopx/rsapi) | A lightweight REST API template, Axum + SeaORM + JWT Middleware + Mini DockerFile | DB: Postgres

## Learning Resources

If you have an article, tutorial, podcast or video related to SeaORM and want to share it with the community, feel free to submit a PR and add it to the list below!

- A video course on Axum and SeaORM: [Youtube Playlist](https://www.youtube.com/playlist?list=PLrmY5pVcnuE-_CP7XZ_44HN-mDrLQV4nS), [GitHub Code](https://github.com/brooks-builds/full-stack-todo-rust-course/tree/main/backend/rust/axum) by [
Brooks Builds](https://github.com/brooks-builds)
- Async GraphQL with Rust: [Part 1](https://konkle.us/async-graphql-rust-1-introduction/), [Part 2](https://konkle.us/async-graphql-with-rust-part-two/), [Part 3](https://konkle.us/async-graphql-with-rust-part-three/) by [Brandon Konkle](https://github.com/bkonkle)


================================================
FILE: CONTRIBUTING.md
================================================
# Contributing to SeaORM

Thank you for taking the time to read this. First of all, star ALL our repos!

SeaORM is a community driven project. We welcome you to participate, contribute and together build for SeaQL's future.

## Code of Conduct

This project is governed by the [SeaQL Code of Conduct](https://github.com/SeaQL/.github/blob/master/CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code.

## I have a question

If you have a question to ask, please do not open an issue for it. It's quicker to ask us on [SeaQL Discord Server](https://discord.com/invite/uCPdDXzbdv) or open a [GitHub Discussion](https://docs.github.com/en/discussions/quickstart#creating-a-new-discussion) on the corresponding repository.

## I need a feature

Feature requests from anyone is definitely welcomed! Actually, since 0.2, many features are proposed and/or contributed by non-core members, e.g. [#105](https://github.com/SeaQL/sea-orm/issues/105), [#142](https://github.com/SeaQL/sea-orm/issues/142), [#252](https://github.com/SeaQL/sea-orm/issues/252), with various degrees of involvement. We will implement feature proposals if it benefits everyone, but of course code contributions will more likely be accepted.

## I want to support

Awesome! The best way to support us is to recommend it to your classmates/colleagues/friends, write blog posts and tutorials on SeaQL projects and help out other users in the community. It is difficult enough to keep an open source afloat, so every little help matters, especially if it can directly/indirectly lighten the core team's mental load.

## I want to join

We are always looking for long-term contributors. If you want to commit longer-term to SeaQL's open source effort, definitely talk with us! There may be various forms of "grant" to compensate for your devotion. Although at this stage we are not resourceful enough to offer a stable stream of income to contributors.

## I want to sponsor

If you don't have time to contribute but would like to support the organization, a financial contribution via [GitHub sponsor](https://github.com/sponsors/SeaQL) is a great way to support us.

## I want to setup my machine for development and testing

Thanks for the time and effort to compose a PR! You are always welcomed to contact us via [Discord](https://discord.com/invite/uCPdDXzbdv) or GitHub if you need any help when contributing. Feel free to open draft PR and ask for review and guidance.

### Unit Test

Without involving a live database, you can run unit tests on your machine with the command below:

- Unit testing `sea-orm`, `sea-orm-macros`, `sea-orm-codegen`
    ```sh
    cargo test --workspace
    ```
- Unit testing `sea-orm-cli`
    ```sh
    cargo test --manifest-path sea-orm-cli/Cargo.toml
    ```
- Unit testing `sea-orm-rocket`
    ```sh
    cargo test --manifest-path sea-orm-rocket/Cargo.toml
    ```

### Integration Test

Next, if you want to run integration tests on a live database. We recommend using Docker to spawn your database instance, you can refer to [this](build-tools/docker-compose.yml) docker compose file for reference.

Running integration tests on a live database:
- SQLite
    ```sh
    DATABASE_URL="sqlite::memory:" cargo test --all --features default,sqlx-sqlite,runtime-async-std-native-tls
    ```
- MySQL / MariaDB
    ```sh
    DATABASE_URL="mysql://root:root@localhost" cargo test --all --features default,sqlx-mysql,runtime-async-std-rustls
    ```
- PostgreSQL
    ```sh
    DATABASE_URL="postgres://root:root@localhost" cargo test --all --features default,sqlx-postgres,runtime-async-std-native-tls
    ```

### Running `sea-orm-cli` from source code

You can either run the follow command at root:

```sh
cargo run --manifest-path sea-orm-cli/Cargo.toml -- <command & arguments for sea-orm-cli>
# E.g.
cargo run --manifest-path sea-orm-cli/Cargo.toml -- migrate init
```

Or, you `cd` into `sea-orm-cli` directory and simply execute:

```sh
cargo run -- <command & arguments for sea-orm-cli>
# E.g.
cargo run -- migrate init
```

### Installing `sea-orm-cli` from source code

You can either run the follow command at root:

```sh
cargo install --force --path sea-orm-cli
```

Or, you `cd` into `sea-orm-cli` directory and simply execute:

```sh
cargo install --force --path .
```

Or, you install `sea-orm-cli` from GitHub:

```sh
cargo install sea-orm-cli --force --git https://github.com/SeaQL/sea-orm --branch <GIT_BRANCH>
```

### TOML formatting 

We use `taplo` to format and lint TOML files across the repository.

```sh
cargo install --locked taplo-cli
taplo fmt --check 
```



================================================
FILE: Cargo.toml
================================================
[workspace]
members = [".", "sea-orm-macros", "sea-orm-codegen", "sea-orm-arrow"]

[package]
authors       = ["Chris Tsang <chris.2y3@outlook.com>"]
categories    = ["database"]
description   = "🐚 An async & dynamic ORM for Rust"
documentation = "https://docs.rs/sea-orm"
edition       = "2024"
homepage      = "https://www.sea-ql.org/SeaORM"
keywords      = ["async", "orm", "mysql", "postgres", "sqlite"]
license       = "MIT OR Apache-2.0"
name          = "sea-orm"
repository    = "https://github.com/SeaQL/sea-orm"
rust-version  = "1.85.0"
version       = "2.0.0-rc.37"

[package.metadata.docs.rs]
features = [
    "default",
    "sqlx-all",
    "mock",
    "proxy",
    "rbac",
    "schema-sync",
    "tracing-spans",
    "runtime-tokio-native-tls",
    "postgres-array",
    "postgres-vector",
    "with-ipnetwork",
    "with-arrow",
]
rustdoc-args = ["--cfg", "docsrs"]

[lib]
name = "sea_orm"
path = "src/lib.rs"

[dependencies]
async-stream = { version = "0.3", default-features = false }
async-trait = { version = "0.1", default-features = false }
bigdecimal = { version = "0.4", default-features = false, features = [
    "std",
], optional = true }
chrono = { version = "0.4.30", default-features = false, optional = true }
derive_more = { version = "2", features = ["debug"] }
futures-util = { version = "0.3", default-features = false, features = [
    "std",
] }
inventory = { version = "0.3", optional = true }
ipnetwork = { version = "0.20", default-features = false, optional = true }
itertools = "0.14.0"
log = { version = "0.4", default-features = false }
mac_address = { version = "1.1", default-features = false, optional = true }
ouroboros = { version = "0.18", default-features = false }
pgvector = { version = "~0.4", default-features = false, optional = true }
rust_decimal = { version = "1", default-features = false, features = [
    "std",
], optional = true }
sea-orm-arrow = { version = "2.0.0-rc", path = "sea-orm-arrow", default-features = false, optional = true }
sea-orm-macros = { version = "~2.0.0-rc.37", path = "sea-orm-macros", default-features = false, features = [
    "async",
    "strum",
] }
sea-query = { version = "=1.0.0-rc.32", default-features = false, features = [
    "thread-safe",
    "hashable-value",
    "backend-mysql",
    "backend-postgres",
    "backend-sqlite",
    "sea-orm",
] }
sea-query-sqlx = { version = "=0.8.0-rc.14", default-features = false, optional = true }
sea-schema = { version = "0.17.0-rc.15", default-features = false, features = [
    "discovery",
    "writer",
    "probe",
], optional = true }
serde = { version = "1.0", default-features = false }
serde_json = { version = "1.0", default-features = false, optional = true }
sqlx = { version = "0.8.4", default-features = false, optional = true }
strum = { version = "0.28", default-features = false }
thiserror = { version = "2", default-features = false }
time = { version = "0.3.36", default-features = false, optional = true }
tracing = { version = "0.1", default-features = false, features = [
    "attributes",
    "log",
] }
url = { version = "2.2", default-features = false }
uuid = { version = "1", default-features = false, optional = true }

[dev-dependencies]
dotenv = "0.15"
maplit = { version = "1" }
pretty_assertions = { version = "0.7" }
sea-orm = { path = ".", features = [
    "debug-print",
    "mock",
    "postgres-array",
    "tests-cfg",
] }
smol = { version = "1.2" }
smol-potat = { version = "1.1" }
time = { version = "0.3.36", features = ["macros"] }
tokio = { version = "1.6", features = ["full"] }
tracing-subscriber = { version = "0.3.17", features = ["env-filter"] }
uuid = { version = "1", features = ["v4"] }

[features]
debug-print = []
default = [
    "macros",
    "with-json",
    "with-chrono",
    "with-rust_decimal",
    "with-uuid",
    "with-time",
    "sqlite-use-returning-for-3_35",
]
entity-registry = ["inventory", "sea-orm-macros/entity-registry"]
json-array = [
    "postgres-array",
] # this does not actually enable sqlx-postgres, but only a few traits to support array in sea-query
macros = ["sea-orm-macros/derive"]
mariadb-use-returning = []
mock = []
postgres-array = [
    "sea-query/postgres-array",
    "sea-orm-macros/postgres-array",
    "sea-query-sqlx?/postgres-array",
]
postgres-use-serial-pk = ["sea-query/option-postgres-use-serial"]
postgres-vector = [
    "pgvector",
    "sea-query/postgres-vector",
    "sea-query-sqlx?/postgres-vector",
]
proxy = ["serde/derive"]
rbac = ["sea-query/audit", "macros"]
runtime-async-std = ["sqlx?/runtime-async-std"]
runtime-async-std-native-tls = [
    "sqlx?/runtime-async-std-native-tls",
    "runtime-async-std",
]
runtime-async-std-rustls = [
    "sqlx?/runtime-async-std-rustls",
    "runtime-async-std",
]
runtime-tokio = ["sqlx?/runtime-tokio"]
runtime-tokio-native-tls = ["sqlx?/runtime-tokio-native-tls", "runtime-tokio"]
runtime-tokio-rustls = ["sqlx?/runtime-tokio-rustls", "runtime-tokio"]
rusqlite = []
schema-sync = ["sea-schema"]
sea-orm-internal = []
seaography = ["sea-orm-macros/seaography"]
sqlite-no-row-value-before-3_15 = []
sqlite-use-returning-for-3_35 = []
sqlx-all = ["sqlx-mysql", "sqlx-postgres", "sqlx-sqlite"]
sqlx-dep = ["sqlx"]
sqlx-mysql = [
    "sqlx-dep",
    "sea-query-sqlx/sqlx-mysql",
    "sea-schema?/sqlx-mysql",
]
sqlx-postgres = [
    "sqlx-dep",
    "sea-query-sqlx/sqlx-postgres",
    "postgres-array",
    "sea-schema?/sqlx-postgres",
]
sqlx-sqlite = [
    "sqlx-dep",
    "sea-query-sqlx/sqlx-sqlite",
    "sea-schema?/sqlx-sqlite",
]
sync = []
tests-cfg = ["serde/derive"]
tests-features = [
    "default",
    "postgres-array",
    "rbac",
    "schema-sync",
    "with-arrow",
    "with-bigdecimal",
    "with-ipnetwork",
]
tracing-spans = []
with-arrow = ["sea-orm-arrow", "sea-orm-macros/with-arrow"]
with-bigdecimal = [
    "bigdecimal",
    "sea-query/with-bigdecimal",
    "sea-query-sqlx?/with-bigdecimal",
    "sea-orm-arrow?/with-bigdecimal",
]
with-chrono = [
    "chrono",
    "sea-query/with-chrono",
    "sea-query-sqlx?/with-chrono",
    "sea-orm-arrow?/with-chrono",
]
with-ipnetwork = [
    "ipnetwork",
    "sea-query/with-ipnetwork",
    "sea-query-sqlx?/with-ipnetwork",
]
with-json = [
    "serde_json",
    "sea-query/with-json",
    "sea-orm-macros/with-json",
    "chrono?/serde",
    "rust_decimal?/serde",
    "bigdecimal?/serde",
    "uuid?/serde",
    "time?/serde",
    "mac_address?/serde",
    "pgvector?/serde",
    "sea-query-sqlx?/with-json",
]
with-mac_address = [
    "mac_address",
    "sea-query/with-mac_address",
    "sea-query-sqlx?/with-mac_address",
]
with-rust_decimal = [
    "rust_decimal",
    "sea-query/with-rust_decimal",
    "sea-query-sqlx?/with-rust_decimal",
    "sea-orm-arrow?/with-rust_decimal",
]
with-time = [
    "time",
    "sea-query/with-time",
    "sea-query-sqlx?/with-time",
    "sea-orm-arrow?/with-time",
]
with-uuid = ["uuid", "sea-query/with-uuid", "sea-query-sqlx?/with-uuid"]

# This allows us to develop using a local version of sea-query
[patch.crates-io]
# sea-query = { path = "../sea-query" }
# sea-query = { git = "https://github.com/SeaQL/sea-query", branch = "master" }


================================================
FILE: DEVELOPMENT.md
================================================
## Use a local SeaORM version

Add this to your `Cargo.toml` for you local project to test out your changes:

```toml
[patch.crates-io]
sea-orm = { path = "../sea-orm" }
```

## Before submitting PR

### Run `clippy` and `fmt`

We need nightly to do the formatting,

```sh
cargo +nightly fmt
```

If you don't have nightly then at least run:

```sh
cargo fmt && git checkout -- ./sea-orm-codegen/src/tests_cfg/
```

We use latest stable clippy:

```sh
cargo clippy --all
```

### Running unit tests

Just do:

```sh
cargo test --lib
cargo test --doc
```

### Launch some databases

There is a docker compose under `build-tools`, but usually I just pick the ones I need from `build-tools/docker-crete.sh`:

```sh
docker run \
    --name "postgres-14" \
    --env POSTGRES_USER="sea" \
    --env POSTGRES_PASSWORD="sea" \
    -d -p 5432:5432 postgres:14
```

### Running integration tests

You need to supply the right feature flags to run integration tests:

```sh
DATABASE_URL="sqlite::memory:"              cargo test --features sqlx-sqlite,runtime-tokio              --test crud_tests
DATABASE_URL="mysql://sea:sea@localhost"    cargo test --features sqlx-mysql,runtime-tokio-native-tls    --test crud_tests
DATABASE_URL="postgres://sea:sea@localhost" cargo test --features sqlx-postgres,runtime-tokio-native-tls --test crud_tests
```

Or use `--tests` to run all tests, which can take a while.


================================================
FILE: LICENSE-APACHE
================================================
                              Apache License
                        Version 2.0, January 2004
                     http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

   "License" shall mean the terms and conditions for use, reproduction,
   and distribution as defined by Sections 1 through 9 of this document.

   "Licensor" shall mean the copyright owner or entity authorized by
   the copyright owner that is granting the License.

   "Legal Entity" shall mean the union of the acting entity and all
   other entities that control, are controlled by, or are under common
   control with that entity. For the purposes of this definition,
   "control" means (i) the power, direct or indirect, to cause the
   direction or management of such entity, whether by contract or
   otherwise, or (ii) ownership of fifty percent (50%) or more of the
   outstanding shares, or (iii) beneficial ownership of such entity.

   "You" (or "Your") shall mean an individual or Legal Entity
   exercising permissions granted by this License.

   "Source" form shall mean the preferred form for making modifications,
   including but not limited to software source code, documentation
   source, and configuration files.

   "Object" form shall mean any form resulting from mechanical
   transformation or translation of a Source form, including but
   not limited to compiled object code, generated documentation,
   and conversions to other media types.

   "Work" shall mean the work of authorship, whether in Source or
   Object form, made available under the License, as indicated by a
   copyright notice that is included in or attached to the work
   (an example is provided in the Appendix below).

   "Derivative Works" shall mean any work, whether in Source or Object
   form, that is based on (or derived from) the Work and for which the
   editorial revisions, annotations, elaborations, or other modifications
   represent, as a whole, an original work of authorship. For the purposes
   of this License, Derivative Works shall not include works that remain
   separable from, or merely link (or bind by name) to the interfaces of,
   the Work and Derivative Works thereof.

   "Contribution" shall mean any work of authorship, including
   the original version of the Work and any modifications or additions
   to that Work or Derivative Works thereof, that is intentionally
   submitted to Licensor for inclusion in the Work by the copyright owner
   or by an individual or Legal Entity authorized to submit on behalf of
   the copyright owner. For the purposes of this definition, "submitted"
   means any form of electronic, verbal, or written communication sent
   to the Licensor or its representatives, including but not limited to
   communication on electronic mailing lists, source code control systems,
   and issue tracking systems that are managed by, or on behalf of, the
   Licensor for the purpose of discussing and improving the Work, but
   excluding communication that is conspicuously marked or otherwise
   designated in writing by the copyright owner as "Not a Contribution."

   "Contributor" shall mean Licensor and any individual or Legal Entity
   on behalf of whom a Contribution has been received by Licensor and
   subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of
   this License, each Contributor hereby grants to You a perpetual,
   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
   copyright license to reproduce, prepare Derivative Works of,
   publicly display, publicly perform, sublicense, and distribute the
   Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of
   this License, each Contributor hereby grants to You a perpetual,
   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
   (except as stated in this section) patent license to make, have made,
   use, offer to sell, sell, import, and otherwise transfer the Work,
   where such license applies only to those patent claims licensable
   by such Contributor that are necessarily infringed by their
   Contribution(s) alone or by combination of their Contribution(s)
   with the Work to which such Contribution(s) was submitted. If You
   institute patent litigation against any entity (including a
   cross-claim or counterclaim in a lawsuit) alleging that the Work
   or a Contribution incorporated within the Work constitutes direct
   or contributory patent infringement, then any patent licenses
   granted to You under this License for that Work shall terminate
   as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the
   Work or Derivative Works thereof in any medium, with or without
   modifications, and in Source or Object form, provided that You
   meet the following conditions:

   (a) You must give any other recipients of the Work or
       Derivative Works a copy of this License; and

   (b) You must cause any modified files to carry prominent notices
       stating that You changed the files; and

   (c) You must retain, in the Source form of any Derivative Works
       that You distribute, all copyright, patent, trademark, and
       attribution notices from the Source form of the Work,
       excluding those notices that do not pertain to any part of
       the Derivative Works; and

   (d) If the Work includes a "NOTICE" text file as part of its
       distribution, then any Derivative Works that You distribute must
       include a readable copy of the attribution notices contained
       within such NOTICE file, excluding those notices that do not
       pertain to any part of the Derivative Works, in at least one
       of the following places: within a NOTICE text file distributed
       as part of the Derivative Works; within the Source form or
       documentation, if provided along with the Derivative Works; or,
       within a display generated by the Derivative Works, if and
       wherever such third-party notices normally appear. The contents
       of the NOTICE file are for informational purposes only and
       do not modify the License. You may add Your own attribution
       notices within Derivative Works that You distribute, alongside
       or as an addendum to the NOTICE text from the Work, provided
       that such additional attribution notices cannot be construed
       as modifying the License.

   You may add Your own copyright statement to Your modifications and
   may provide additional or different license terms and conditions
   for use, reproduction, or distribution of Your modifications, or
   for any such Derivative Works as a whole, provided Your use,
   reproduction, and distribution of the Work otherwise complies with
   the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise,
   any Contribution intentionally submitted for inclusion in the Work
   by You to the Licensor shall be under the terms and conditions of
   this License, without any additional terms or conditions.
   Notwithstanding the above, nothing herein shall supersede or modify
   the terms of any separate license agreement you may have executed
   with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade
   names, trademarks, service marks, or product names of the Licensor,
   except as required for reasonable and customary use in describing the
   origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or
   agreed to in writing, Licensor provides the Work (and each
   Contributor provides its Contributions) on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
   implied, including, without limitation, any warranties or conditions
   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
   PARTICULAR PURPOSE. You are solely responsible for determining the
   appropriateness of using or redistributing the Work and assume any
   risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory,
   whether in tort (including negligence), contract, or otherwise,
   unless required by applicable law (such as deliberate and grossly
   negligent acts) or agreed to in writing, shall any Contributor be
   liable to You for damages, including any direct, indirect, special,
   incidental, or consequential damages of any character arising as a
   result of this License or out of the use or inability to use the
   Work (including but not limited to damages for loss of goodwill,
   work stoppage, computer failure or malfunction, or any and all
   other commercial damages or losses), even if such Contributor
   has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing
   the Work or Derivative Works thereof, You may choose to offer,
   and charge a fee for, acceptance of support, warranty, indemnity,
   or other liability obligations and/or rights consistent with this
   License. However, in accepting such obligations, You may act only
   on Your own behalf and on Your sole responsibility, not on behalf
   of any other Contributor, and only if You agree to indemnify,
   defend, and hold each Contributor harmless for any liability
   incurred by, or claims asserted against, such Contributor by reason
   of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

   To apply the Apache License to your work, attach the following
   boilerplate notice, with the fields enclosed by brackets "[]"
   replaced with your own identifying information. (Don't include
   the brackets!)  The text should be enclosed in the appropriate
   comment syntax for the file format. We also recommend that a
   file or class name and description of purpose be included on the
   same "printed page" as the copyright notice for easier
   identification within third-party archives.

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

	http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

================================================
FILE: LICENSE-MIT
================================================
Copyright (c) 2023 Seafire Software Limited

Permission is hereby granted, free of charge, to a
Download .txt
gitextract_ko6xbeae/

├── .gitattributes
├── .github/
│   ├── .well-known/
│   │   └── funding-manifest-urls
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug-report.md
│   │   ├── config.yml
│   │   └── feature-request.md
│   └── workflows/
│       ├── release-bot.yml
│       └── rust.yml
├── .gitignore
├── .rustfmt.toml
├── .taplo.toml
├── CHANGELOG.md
├── CLAUDE.md
├── COMMUNITY.md
├── CONTRIBUTING.md
├── Cargo.toml
├── DEVELOPMENT.md
├── LICENSE-APACHE
├── LICENSE-MIT
├── README-zh.md
├── README.md
├── VERSIONS.md
├── build-tools/
│   ├── back-async.rs
│   ├── bump.sh
│   ├── clean.sh
│   ├── del-rel-dep.sh
│   ├── docker-compose.yml
│   ├── docker-create.sh
│   ├── make-sync.sh
│   ├── publish.sh
│   ├── readme.sh
│   ├── rustclippy.sh
│   ├── rustfmt.sh
│   └── update-strum-macros.sh
├── changelog/
│   ├── 2.0.0-rc.20.md
│   ├── 2.0.0-rc.21.md
│   ├── 2.0.0-rc.22.md
│   ├── 2.0.0-rc.23.md
│   ├── 2.0.0-rc.24.md
│   ├── 2.0.0-rc.25.md
│   ├── 2.0.0-rc.26.md
│   ├── 2.0.0-rc.27.md
│   ├── 2.0.0-rc.28.md
│   ├── 2.0.0-rc.29.md
│   ├── 2.0.0-rc.30.md
│   ├── 2.0.0-rc.31.md
│   ├── 2.0.0-rc.32.md
│   ├── 2.0.0-rc.34.md
│   ├── 2.0.0-rc.35.md
│   ├── 2.0.0-rc.36.md
│   └── 2.0.0-rc.37.md
├── examples/
│   ├── actix_example/
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   ├── api/
│   │   │   ├── Cargo.toml
│   │   │   ├── src/
│   │   │   │   ├── lib.rs
│   │   │   │   └── service/
│   │   │   │       ├── mod.rs
│   │   │   │       ├── mutation.rs
│   │   │   │       └── query.rs
│   │   │   ├── static/
│   │   │   │   └── css/
│   │   │   │       ├── normalize.css
│   │   │   │       ├── skeleton.css
│   │   │   │       └── style.css
│   │   │   ├── templates/
│   │   │   │   ├── edit.html.tera
│   │   │   │   ├── error/
│   │   │   │   │   └── 404.html.tera
│   │   │   │   ├── index.html.tera
│   │   │   │   ├── layout.html.tera
│   │   │   │   └── new.html.tera
│   │   │   └── tests/
│   │   │       └── crud_tests.rs
│   │   ├── entity/
│   │   │   ├── Cargo.toml
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       ├── post.rs
│   │   │       └── prelude.rs
│   │   ├── migration/
│   │   │   ├── Cargo.toml
│   │   │   ├── README.md
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       ├── m20220120_000001_create_post_table.rs
│   │   │       ├── m20220120_000002_seed_posts.rs
│   │   │       └── main.rs
│   │   └── src/
│   │       └── main.rs
│   ├── axum_example/
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   ├── api/
│   │   │   ├── Cargo.toml
│   │   │   ├── src/
│   │   │   │   ├── flash.rs
│   │   │   │   ├── lib.rs
│   │   │   │   └── service/
│   │   │   │       ├── mod.rs
│   │   │   │       ├── mutation.rs
│   │   │   │       └── query.rs
│   │   │   ├── static/
│   │   │   │   └── css/
│   │   │   │       ├── normalize.css
│   │   │   │       ├── skeleton.css
│   │   │   │       └── style.css
│   │   │   ├── templates/
│   │   │   │   ├── edit.html.tera
│   │   │   │   ├── error/
│   │   │   │   │   └── 404.html.tera
│   │   │   │   ├── index.html.tera
│   │   │   │   ├── layout.html.tera
│   │   │   │   └── new.html.tera
│   │   │   └── tests/
│   │   │       └── crud_tests.rs
│   │   ├── entity/
│   │   │   ├── Cargo.toml
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       ├── post.rs
│   │   │       └── prelude.rs
│   │   ├── migration/
│   │   │   ├── Cargo.toml
│   │   │   ├── README.md
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       ├── m20220120_000001_create_post_table.rs
│   │   │       ├── m20220120_000002_seed_posts.rs
│   │   │       └── main.rs
│   │   └── src/
│   │       └── main.rs
│   ├── basic/
│   │   ├── Cargo.toml
│   │   ├── Readme.md
│   │   ├── bakery.sql
│   │   └── src/
│   │       ├── entity/
│   │       │   ├── cake.rs
│   │       │   ├── cake_filling.rs
│   │       │   ├── filling.rs
│   │       │   ├── fruit.rs
│   │       │   ├── mod.rs
│   │       │   └── sea_orm_active_enums.rs
│   │       ├── main.rs
│   │       ├── mutation.rs
│   │       └── query.rs
│   ├── graphql_example/
│   │   ├── .gitignore
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   ├── api/
│   │   │   ├── Cargo.toml
│   │   │   ├── src/
│   │   │   │   ├── db.rs
│   │   │   │   ├── graphql/
│   │   │   │   │   ├── mod.rs
│   │   │   │   │   ├── mutation/
│   │   │   │   │   │   ├── mod.rs
│   │   │   │   │   │   └── note.rs
│   │   │   │   │   ├── query/
│   │   │   │   │   │   ├── mod.rs
│   │   │   │   │   │   └── note.rs
│   │   │   │   │   └── schema.rs
│   │   │   │   ├── lib.rs
│   │   │   │   └── service/
│   │   │   │       ├── mod.rs
│   │   │   │       ├── mutation.rs
│   │   │   │       └── query.rs
│   │   │   └── tests/
│   │   │       └── crud_tests.rs
│   │   ├── entity/
│   │   │   ├── Cargo.toml
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       └── note.rs
│   │   ├── migration/
│   │   │   ├── Cargo.toml
│   │   │   ├── README.md
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       ├── m20220120_000001_create_note_table.rs
│   │   │       ├── m20220120_000002_seed_notes.rs
│   │   │       └── main.rs
│   │   └── src/
│   │       └── main.rs
│   ├── jsonrpsee_example/
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   ├── api/
│   │   │   ├── Cargo.toml
│   │   │   ├── src/
│   │   │   │   ├── lib.rs
│   │   │   │   └── service/
│   │   │   │       ├── mod.rs
│   │   │   │       ├── mutation.rs
│   │   │   │       └── query.rs
│   │   │   └── tests/
│   │   │       └── crud_tests.rs
│   │   ├── entity/
│   │   │   ├── Cargo.toml
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       ├── post.rs
│   │   │       └── prelude.rs
│   │   ├── migration/
│   │   │   ├── Cargo.toml
│   │   │   ├── README.md
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       ├── m20220120_000001_create_post_table.rs
│   │   │       ├── m20220120_000002_seed_posts.rs
│   │   │       └── main.rs
│   │   └── src/
│   │       └── main.rs
│   ├── loco_example/
│   │   ├── .cargo/
│   │   │   └── config.toml
│   │   ├── .dockerignore
│   │   ├── .gitignore
│   │   ├── .rustfmt.toml
│   │   ├── Cargo.lock
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   ├── config/
│   │   │   └── development.yaml
│   │   ├── dockerfile
│   │   ├── frontend/
│   │   │   ├── .eslintrc.cjs
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── App.css
│   │   │   │   ├── App.jsx
│   │   │   │   ├── index.css
│   │   │   │   └── main.jsx
│   │   │   └── vite.config.js
│   │   ├── migration/
│   │   │   ├── Cargo.toml
│   │   │   ├── README.md
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       ├── m20231103_114510_notes.rs
│   │   │       └── main.rs
│   │   ├── src/
│   │   │   ├── app.rs
│   │   │   ├── bin/
│   │   │   │   └── main.rs
│   │   │   ├── controllers/
│   │   │   │   ├── mod.rs
│   │   │   │   └── notes.rs
│   │   │   ├── fixtures/
│   │   │   │   └── notes.yaml
│   │   │   ├── lib.rs
│   │   │   └── models/
│   │   │       ├── _entities/
│   │   │       │   ├── mod.rs
│   │   │       │   ├── notes.rs
│   │   │       │   └── prelude.rs
│   │   │       ├── mod.rs
│   │   │       └── notes.rs
│   │   └── tests/
│   │       ├── mod.rs
│   │       ├── models/
│   │       │   └── mod.rs
│   │       ├── requests/
│   │       │   ├── mod.rs
│   │       │   ├── notes.rs
│   │       │   └── snapshots/
│   │       │       ├── can_add_note@notes_request.snap
│   │       │       ├── can_delete_note@notes_request.snap
│   │       │       ├── can_get_note@notes_request.snap
│   │       │       └── can_get_notes@notes_request.snap
│   │       └── tasks/
│   │           ├── mod.rs
│   │           └── seed.rs
│   ├── loco_seaography/
│   │   ├── .cargo/
│   │   │   └── config.toml
│   │   ├── .devcontainer/
│   │   │   ├── Dockerfile
│   │   │   ├── devcontainer.json
│   │   │   └── docker-compose.yml
│   │   ├── .github/
│   │   │   └── workflows/
│   │   │       └── ci.yaml
│   │   ├── .gitignore
│   │   ├── .rustfmt.toml
│   │   ├── Cargo.lock
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   ├── config/
│   │   │   └── development.yaml
│   │   ├── migration/
│   │   │   ├── Cargo.toml
│   │   │   ├── README.md
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       ├── m20220101_000001_users.rs
│   │   │       ├── m20231103_114510_notes.rs
│   │   │       ├── m20240520_173001_files.rs
│   │   │       └── main.rs
│   │   └── src/
│   │       ├── app.rs
│   │       ├── bin/
│   │       │   └── main.rs
│   │       ├── controllers/
│   │       │   ├── auth.rs
│   │       │   ├── files.rs
│   │       │   ├── graphql.rs
│   │       │   ├── mod.rs
│   │       │   ├── notes.rs
│   │       │   └── user.rs
│   │       ├── fixtures/
│   │       │   ├── notes.yaml
│   │       │   └── users.yaml
│   │       ├── graphql/
│   │       │   ├── mod.rs
│   │       │   └── query_root.rs
│   │       ├── initializers/
│   │       │   ├── graphql.rs
│   │       │   └── mod.rs
│   │       ├── lib.rs
│   │       ├── mailers/
│   │       │   ├── auth/
│   │       │   │   ├── forgot/
│   │       │   │   │   ├── html.t
│   │       │   │   │   ├── subject.t
│   │       │   │   │   └── text.t
│   │       │   │   └── welcome/
│   │       │   │       ├── html.t
│   │       │   │       ├── subject.t
│   │       │   │       └── text.t
│   │       │   ├── auth.rs
│   │       │   └── mod.rs
│   │       ├── models/
│   │       │   ├── _entities/
│   │       │   │   ├── files.rs
│   │       │   │   ├── mod.rs
│   │       │   │   ├── notes.rs
│   │       │   │   ├── prelude.rs
│   │       │   │   └── users.rs
│   │       │   ├── files.rs
│   │       │   ├── mod.rs
│   │       │   ├── notes.rs
│   │       │   └── users.rs
│   │       ├── tasks/
│   │       │   ├── mod.rs
│   │       │   └── seed.rs
│   │       ├── views/
│   │       │   ├── auth.rs
│   │       │   ├── mod.rs
│   │       │   └── user.rs
│   │       └── workers/
│   │           ├── downloader.rs
│   │           └── mod.rs
│   ├── loco_starter/
│   │   ├── .cargo/
│   │   │   └── config.toml
│   │   ├── .devcontainer/
│   │   │   ├── Dockerfile
│   │   │   ├── devcontainer.json
│   │   │   └── docker-compose.yml
│   │   ├── .github/
│   │   │   └── workflows/
│   │   │       └── ci.yaml
│   │   ├── .gitignore
│   │   ├── .rustfmt.toml
│   │   ├── Cargo.lock
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   ├── config/
│   │   │   └── development.yaml
│   │   ├── examples/
│   │   │   └── playground.rs
│   │   ├── migration/
│   │   │   ├── Cargo.toml
│   │   │   ├── README.md
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       ├── m20220101_000001_users.rs
│   │   │       ├── m20231103_114510_notes.rs
│   │   │       ├── m20240520_173001_files.rs
│   │   │       └── main.rs
│   │   └── src/
│   │       ├── app.rs
│   │       ├── bin/
│   │       │   └── main.rs
│   │       ├── controllers/
│   │       │   ├── auth.rs
│   │       │   ├── files.rs
│   │       │   ├── mod.rs
│   │       │   ├── notes.rs
│   │       │   └── user.rs
│   │       ├── fixtures/
│   │       │   ├── notes.yaml
│   │       │   └── users.yaml
│   │       ├── lib.rs
│   │       ├── mailers/
│   │       │   ├── auth/
│   │       │   │   ├── forgot/
│   │       │   │   │   ├── html.t
│   │       │   │   │   ├── subject.t
│   │       │   │   │   └── text.t
│   │       │   │   └── welcome/
│   │       │   │       ├── html.t
│   │       │   │       ├── subject.t
│   │       │   │       └── text.t
│   │       │   ├── auth.rs
│   │       │   └── mod.rs
│   │       ├── models/
│   │       │   ├── _entities/
│   │       │   │   ├── files.rs
│   │       │   │   ├── mod.rs
│   │       │   │   ├── notes.rs
│   │       │   │   ├── prelude.rs
│   │       │   │   └── users.rs
│   │       │   ├── files.rs
│   │       │   ├── mod.rs
│   │       │   ├── notes.rs
│   │       │   └── users.rs
│   │       ├── tasks/
│   │       │   ├── mod.rs
│   │       │   └── seed.rs
│   │       ├── views/
│   │       │   ├── auth.rs
│   │       │   ├── mod.rs
│   │       │   └── user.rs
│   │       └── workers/
│   │           ├── downloader.rs
│   │           └── mod.rs
│   ├── parquet_example/
│   │   ├── Cargo.toml
│   │   └── src/
│   │       └── main.rs
│   ├── poem_example/
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   ├── api/
│   │   │   ├── Cargo.toml
│   │   │   ├── src/
│   │   │   │   ├── lib.rs
│   │   │   │   └── service/
│   │   │   │       ├── mod.rs
│   │   │   │       ├── mutation.rs
│   │   │   │       └── query.rs
│   │   │   ├── static/
│   │   │   │   └── css/
│   │   │   │       ├── normalize.css
│   │   │   │       ├── skeleton.css
│   │   │   │       └── style.css
│   │   │   ├── templates/
│   │   │   │   ├── edit.html.tera
│   │   │   │   ├── error/
│   │   │   │   │   └── 404.html.tera
│   │   │   │   ├── index.html.tera
│   │   │   │   ├── layout.html.tera
│   │   │   │   └── new.html.tera
│   │   │   └── tests/
│   │   │       └── crud_tests.rs
│   │   ├── entity/
│   │   │   ├── Cargo.toml
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       ├── post.rs
│   │   │       └── prelude.rs
│   │   ├── migration/
│   │   │   ├── Cargo.toml
│   │   │   ├── README.md
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       ├── m20220120_000001_create_post_table.rs
│   │   │       ├── m20220120_000002_seed_posts.rs
│   │   │       └── main.rs
│   │   └── src/
│   │       └── main.rs
│   ├── proxy_cloudflare_worker_example/
│   │   ├── .gitignore
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   ├── Wrangler.toml
│   │   └── src/
│   │       ├── entity.rs
│   │       ├── lib.rs
│   │       ├── orm.rs
│   │       └── route.rs
│   ├── proxy_gluesql_example/
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   └── src/
│   │       ├── entity/
│   │       │   ├── mod.rs
│   │       │   └── post.rs
│   │       └── main.rs
│   ├── quickstart/
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   └── src/
│   │       └── main.rs
│   ├── react_admin/
│   │   ├── README.md
│   │   ├── backend/
│   │   │   ├── .cargo/
│   │   │   │   └── config.toml
│   │   │   ├── .devcontainer/
│   │   │   │   ├── Dockerfile
│   │   │   │   ├── devcontainer.json
│   │   │   │   └── docker-compose.yml
│   │   │   ├── .github/
│   │   │   │   └── workflows/
│   │   │   │       └── ci.yaml
│   │   │   ├── .gitignore
│   │   │   ├── .rustfmt.toml
│   │   │   ├── Cargo.lock
│   │   │   ├── Cargo.toml
│   │   │   ├── config/
│   │   │   │   └── development.yaml
│   │   │   ├── examples/
│   │   │   │   └── playground.rs
│   │   │   ├── migration/
│   │   │   │   ├── Cargo.toml
│   │   │   │   ├── README.md
│   │   │   │   └── src/
│   │   │   │       ├── lib.rs
│   │   │   │       ├── m20220101_000001_users.rs
│   │   │   │       ├── m20231103_114510_notes.rs
│   │   │   │       ├── m20240520_173001_files.rs
│   │   │   │       └── main.rs
│   │   │   └── src/
│   │   │       ├── app.rs
│   │   │       ├── bin/
│   │   │       │   └── main.rs
│   │   │       ├── controllers/
│   │   │       │   ├── auth.rs
│   │   │       │   ├── files.rs
│   │   │       │   ├── graphql.rs
│   │   │       │   ├── mod.rs
│   │   │       │   ├── notes.rs
│   │   │       │   └── user.rs
│   │   │       ├── fixtures/
│   │   │       │   ├── notes.yaml
│   │   │       │   └── users.yaml
│   │   │       ├── graphql/
│   │   │       │   ├── mod.rs
│   │   │       │   └── query_root.rs
│   │   │       ├── lib.rs
│   │   │       ├── mailers/
│   │   │       │   ├── auth/
│   │   │       │   │   ├── forgot/
│   │   │       │   │   │   ├── html.t
│   │   │       │   │   │   ├── subject.t
│   │   │       │   │   │   └── text.t
│   │   │       │   │   └── welcome/
│   │   │       │   │       ├── html.t
│   │   │       │   │       ├── subject.t
│   │   │       │   │       └── text.t
│   │   │       │   ├── auth.rs
│   │   │       │   └── mod.rs
│   │   │       ├── models/
│   │   │       │   ├── _entities/
│   │   │       │   │   ├── files.rs
│   │   │       │   │   ├── mod.rs
│   │   │       │   │   ├── notes.rs
│   │   │       │   │   ├── prelude.rs
│   │   │       │   │   └── users.rs
│   │   │       │   ├── files.rs
│   │   │       │   ├── mod.rs
│   │   │       │   ├── notes.rs
│   │   │       │   └── users.rs
│   │   │       ├── tasks/
│   │   │       │   ├── mod.rs
│   │   │       │   └── seed.rs
│   │   │       ├── views/
│   │   │       │   ├── auth.rs
│   │   │       │   ├── mod.rs
│   │   │       │   └── user.rs
│   │   │       └── workers/
│   │   │           ├── downloader.rs
│   │   │           └── mod.rs
│   │   └── frontend/
│   │       ├── .eslintrc.js
│   │       ├── .gitignore
│   │       ├── README.md
│   │       ├── index.html
│   │       ├── package.json
│   │       ├── prettier.config.js
│   │       ├── public/
│   │       │   └── manifest.json
│   │       ├── src/
│   │       │   ├── App.tsx
│   │       │   ├── Layout.tsx
│   │       │   ├── authProvider.ts
│   │       │   ├── dataProvider.ts
│   │       │   ├── index.tsx
│   │       │   ├── users.json
│   │       │   └── vite-env.d.ts
│   │       ├── tsconfig.json
│   │       └── vite.config.ts
│   ├── rocket_example/
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   ├── Rocket.toml
│   │   ├── api/
│   │   │   ├── Cargo.toml
│   │   │   ├── src/
│   │   │   │   ├── lib.rs
│   │   │   │   ├── pool.rs
│   │   │   │   └── service/
│   │   │   │       ├── mod.rs
│   │   │   │       ├── mutation.rs
│   │   │   │       └── query.rs
│   │   │   ├── static/
│   │   │   │   └── css/
│   │   │   │       ├── normalize.css
│   │   │   │       ├── skeleton.css
│   │   │   │       └── style.css
│   │   │   ├── templates/
│   │   │   │   ├── base.html.tera
│   │   │   │   ├── edit.html.tera
│   │   │   │   ├── error/
│   │   │   │   │   └── 404.html.tera
│   │   │   │   ├── index.html.tera
│   │   │   │   └── new.html.tera
│   │   │   └── tests/
│   │   │       └── crud_tests.rs
│   │   ├── entity/
│   │   │   ├── Cargo.toml
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       └── post.rs
│   │   ├── migration/
│   │   │   ├── Cargo.toml
│   │   │   ├── README.md
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       ├── m20220120_000001_create_post_table.rs
│   │   │       ├── m20220120_000002_seed_posts.rs
│   │   │       └── main.rs
│   │   └── src/
│   │       └── main.rs
│   ├── rocket_okapi_example/
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   ├── Rocket.toml
│   │   ├── api/
│   │   │   ├── Cargo.toml
│   │   │   └── src/
│   │   │       ├── error.rs
│   │   │       ├── lib.rs
│   │   │       ├── okapi_example.rs
│   │   │       └── pool.rs
│   │   ├── dto/
│   │   │   ├── Cargo.toml
│   │   │   └── src/
│   │   │       ├── dto.rs
│   │   │       └── lib.rs
│   │   ├── entity/
│   │   │   ├── Cargo.toml
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       └── post.rs
│   │   ├── migration/
│   │   │   ├── Cargo.toml
│   │   │   ├── README.md
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       ├── m20220120_000001_create_post_table.rs
│   │   │       └── main.rs
│   │   ├── service/
│   │   │   ├── Cargo.toml
│   │   │   ├── src/
│   │   │   │   ├── lib.rs
│   │   │   │   ├── mutation.rs
│   │   │   │   └── query.rs
│   │   │   └── tests/
│   │   │       └── crud_tests.rs
│   │   └── src/
│   │       └── main.rs
│   ├── salvo_example/
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   ├── api/
│   │   │   ├── Cargo.toml
│   │   │   ├── src/
│   │   │   │   ├── lib.rs
│   │   │   │   └── service/
│   │   │   │       ├── mod.rs
│   │   │   │       ├── mutation.rs
│   │   │   │       └── query.rs
│   │   │   ├── static/
│   │   │   │   └── css/
│   │   │   │       ├── normalize.css
│   │   │   │       ├── skeleton.css
│   │   │   │       └── style.css
│   │   │   ├── templates/
│   │   │   │   ├── edit.html.tera
│   │   │   │   ├── error/
│   │   │   │   │   └── 404.html.tera
│   │   │   │   ├── index.html.tera
│   │   │   │   ├── layout.html.tera
│   │   │   │   └── new.html.tera
│   │   │   └── tests/
│   │   │       └── crud_tests.rs
│   │   ├── entity/
│   │   │   ├── Cargo.toml
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       ├── post.rs
│   │   │       └── prelude.rs
│   │   ├── migration/
│   │   │   ├── Cargo.toml
│   │   │   ├── README.md
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       ├── m20220120_000001_create_post_table.rs
│   │   │       ├── m20220120_000002_seed_posts.rs
│   │   │       └── main.rs
│   │   └── src/
│   │       └── main.rs
│   ├── seaography_example/
│   │   ├── README.md
│   │   ├── graphql/
│   │   │   ├── Cargo.toml
│   │   │   ├── src/
│   │   │   │   ├── entities/
│   │   │   │   │   ├── baker.rs
│   │   │   │   │   ├── bakery.rs
│   │   │   │   │   ├── cake.rs
│   │   │   │   │   ├── cake_baker.rs
│   │   │   │   │   ├── mod.rs
│   │   │   │   │   └── prelude.rs
│   │   │   │   ├── lib.rs
│   │   │   │   ├── main.rs
│   │   │   │   └── query_root.rs
│   │   │   └── tests/
│   │   │       └── query_tests.rs
│   │   └── migration/
│   │       ├── Cargo.toml
│   │       ├── README.md
│   │       └── src/
│   │           ├── entity/
│   │           │   ├── baker.rs
│   │           │   ├── bakery.rs
│   │           │   ├── cake.rs
│   │           │   ├── cake_baker.rs
│   │           │   ├── mod.rs
│   │           │   └── prelude.rs
│   │           ├── lib.rs
│   │           ├── m20230101_000001_create_bakery_table.rs
│   │           ├── m20230101_000002_create_baker_table.rs
│   │           ├── m20230101_000003_create_cake_table.rs
│   │           ├── m20230101_000004_create_cake_baker_table.rs
│   │           ├── m20230101_000005_create_customer_table.rs
│   │           ├── m20230101_000006_create_order_table.rs
│   │           ├── m20230101_000007_create_lineitem_table.rs
│   │           ├── m20230102_000001_seed_bakery_data.rs
│   │           └── main.rs
│   └── tonic_example/
│       ├── Cargo.toml
│       ├── README.md
│       ├── api/
│       │   ├── Cargo.toml
│       │   ├── build.rs
│       │   ├── proto/
│       │   │   └── post.proto
│       │   ├── src/
│       │   │   ├── lib.rs
│       │   │   └── service/
│       │   │       ├── mod.rs
│       │   │       ├── mutation.rs
│       │   │       └── query.rs
│       │   └── tests/
│       │       └── crud_tests.rs
│       ├── entity/
│       │   ├── Cargo.toml
│       │   └── src/
│       │       ├── lib.rs
│       │       ├── post.rs
│       │       └── prelude.rs
│       ├── migration/
│       │   ├── Cargo.toml
│       │   ├── README.md
│       │   └── src/
│       │       ├── lib.rs
│       │       ├── m20220120_000001_create_post_table.rs
│       │       ├── m20220120_000002_seed_posts.rs
│       │       └── main.rs
│       └── src/
│           ├── client.rs
│           └── server.rs
├── issues/
│   ├── 1143/
│   │   ├── Cargo.toml
│   │   └── src/
│   │       ├── entity/
│   │       │   ├── mod.rs
│   │       │   └── sea_orm_active_enums.rs
│   │       └── main.rs
│   ├── 1278/
│   │   ├── Cargo.toml
│   │   └── src/
│   │       ├── entity.rs
│   │       └── main.rs
│   ├── 1357/
│   │   ├── Cargo.toml
│   │   └── src/
│   │       ├── entity.rs
│   │       └── main.rs
│   ├── 1473/
│   │   ├── Cargo.toml
│   │   └── src/
│   │       └── main.rs
│   ├── 1582/
│   │   └── schema.sql
│   ├── 1599/
│   │   ├── Cargo.toml
│   │   ├── entity/
│   │   │   ├── Cargo.toml
│   │   │   └── src/
│   │   │       ├── cake.rs
│   │   │       ├── cake_filling.rs
│   │   │       ├── filling.rs
│   │   │       ├── fruit.rs
│   │   │       └── lib.rs
│   │   └── graphql/
│   │       ├── Cargo.toml
│   │       └── src/
│   │           ├── main.rs
│   │           └── query_root.rs
│   ├── 1790/
│   │   ├── Cargo.toml
│   │   └── insert_test.rs
│   ├── 249/
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── Cargo.toml
│   │   │   └── src/
│   │   │       └── main.rs
│   │   └── service/
│   │       ├── Cargo.toml
│   │       └── src/
│   │           └── lib.rs
│   ├── 262/
│   │   ├── Cargo.toml
│   │   └── src/
│   │       ├── cake.rs
│   │       └── main.rs
│   ├── 319/
│   │   ├── Cargo.toml
│   │   └── src/
│   │       ├── main.rs
│   │       └── material.rs
│   ├── 324/
│   │   ├── Cargo.toml
│   │   └── src/
│   │       ├── main.rs
│   │       └── model.rs
│   ├── 352/
│   │   ├── Cargo.toml
│   │   └── src/
│   │       ├── binary_primary_key.rs
│   │       ├── main.rs
│   │       ├── quaternary_primary_key.rs
│   │       ├── quinary_primary_key.rs
│   │       ├── senary_primary_key.rs
│   │       ├── ternary_primary_key.rs
│   │       └── unary_primary_key.rs
│   ├── 356/
│   │   ├── Cargo.toml
│   │   └── src/
│   │       ├── main.rs
│   │       └── model.rs
│   ├── 400/
│   │   ├── Cargo.toml
│   │   └── src/
│   │       ├── main.rs
│   │       └── model.rs
│   ├── 471/
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   └── src/
│   │       ├── main.rs
│   │       ├── post.rs
│   │       └── setup.rs
│   ├── 630/
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   ├── create_underscores_table.sql
│   │   └── src/
│   │       ├── entity/
│   │       │   ├── mod.rs
│   │       │   ├── prelude.rs
│   │       │   ├── underscores.rs
│   │       │   └── underscores_workaround.rs
│   │       └── main.rs
│   ├── 693/
│   │   ├── Cargo.toml
│   │   └── src/
│   │       ├── container.rs
│   │       ├── content.rs
│   │       └── main.rs
│   ├── 86/
│   │   ├── Cargo.toml
│   │   └── src/
│   │       ├── cake.rs
│   │       └── main.rs
│   └── 892/
│       ├── Cargo.toml
│       └── src/
│           └── main.rs
├── sea-orm-arrow/
│   ├── Cargo.toml
│   └── src/
│       └── lib.rs
├── sea-orm-cli/
│   ├── Cargo.toml
│   ├── README.md
│   ├── src/
│   │   ├── bin/
│   │   │   └── main.rs
│   │   ├── cli.rs
│   │   ├── commands/
│   │   │   ├── generate.rs
│   │   │   ├── migrate.rs
│   │   │   └── mod.rs
│   │   └── lib.rs
│   └── template/
│       └── migration/
│           ├── README.md
│           ├── _Cargo.toml
│           ├── _gitignore
│           └── src/
│               ├── lib.rs
│               ├── m20220101_000001_create_table.rs
│               └── main.rs
├── sea-orm-codegen/
│   ├── Cargo.toml
│   ├── README.md
│   ├── rustfmt.toml
│   ├── src/
│   │   ├── entity/
│   │   │   ├── active_enum.rs
│   │   │   ├── base_entity.rs
│   │   │   ├── column.rs
│   │   │   ├── conjunct_relation.rs
│   │   │   ├── mod.rs
│   │   │   ├── primary_key.rs
│   │   │   ├── relation.rs
│   │   │   ├── transformer.rs
│   │   │   ├── writer/
│   │   │   │   ├── compact.rs
│   │   │   │   ├── dense.rs
│   │   │   │   ├── expanded.rs
│   │   │   │   ├── frontend.rs
│   │   │   │   └── mermaid.rs
│   │   │   └── writer.rs
│   │   ├── error.rs
│   │   ├── lib.rs
│   │   ├── merge/
│   │   │   ├── extract.rs
│   │   │   └── mod.rs
│   │   ├── tests_cfg/
│   │   │   ├── compact/
│   │   │   │   ├── indexes.rs
│   │   │   │   └── mod.rs
│   │   │   ├── dense/
│   │   │   │   ├── indexes.rs
│   │   │   │   └── mod.rs
│   │   │   ├── duplicated_many_to_many_paths/
│   │   │   │   ├── bills.rs
│   │   │   │   ├── mod.rs
│   │   │   │   ├── prelude.rs
│   │   │   │   ├── users.rs
│   │   │   │   ├── users_saved_bills.rs
│   │   │   │   └── users_votes.rs
│   │   │   ├── many_to_many/
│   │   │   │   ├── bills.rs
│   │   │   │   ├── mod.rs
│   │   │   │   ├── prelude.rs
│   │   │   │   ├── users.rs
│   │   │   │   └── users_votes.rs
│   │   │   ├── many_to_many_multiple/
│   │   │   │   ├── bills.rs
│   │   │   │   ├── mod.rs
│   │   │   │   ├── prelude.rs
│   │   │   │   ├── users.rs
│   │   │   │   └── users_votes.rs
│   │   │   ├── mod.rs
│   │   │   └── self_referencing/
│   │   │       ├── bills.rs
│   │   │       ├── mod.rs
│   │   │       ├── prelude.rs
│   │   │       └── users.rs
│   │   └── util.rs
│   └── tests/
│       ├── compact/
│       │   ├── cake.rs
│       │   ├── cake_filling.rs
│       │   ├── cake_filling_price.rs
│       │   ├── cake_with_double.rs
│       │   ├── cake_with_float.rs
│       │   ├── child.rs
│       │   ├── collection.rs
│       │   ├── collection_float.rs
│       │   ├── filling.rs
│       │   ├── fruit.rs
│       │   ├── mod.rs
│       │   ├── parent.rs
│       │   ├── prelude.rs
│       │   ├── rust_keyword.rs
│       │   └── vendor.rs
│       ├── compact_with_attributes/
│       │   ├── cake_multiple.rs
│       │   ├── cake_none.rs
│       │   └── cake_one.rs
│       ├── compact_with_derives/
│       │   ├── cake_multiple.rs
│       │   ├── cake_none.rs
│       │   └── cake_one.rs
│       ├── compact_with_schema_name/
│       │   ├── cake.rs
│       │   ├── cake_filling.rs
│       │   ├── cake_filling_price.rs
│       │   ├── cake_with_double.rs
│       │   ├── cake_with_float.rs
│       │   ├── child.rs
│       │   ├── collection.rs
│       │   ├── collection_float.rs
│       │   ├── filling.rs
│       │   ├── fruit.rs
│       │   ├── mod.rs
│       │   ├── parent.rs
│       │   ├── prelude.rs
│       │   ├── rust_keyword.rs
│       │   └── vendor.rs
│       ├── compact_with_serde/
│       │   ├── cake_both.rs
│       │   ├── cake_deserialize.rs
│       │   ├── cake_none.rs
│       │   ├── cake_serialize.rs
│       │   └── cake_serialize_with_hidden_column.rs
│       ├── dense/
│       │   ├── cake.rs
│       │   ├── cake_filling.rs
│       │   ├── cake_filling_price.rs
│       │   ├── cake_with_double.rs
│       │   ├── cake_with_float.rs
│       │   ├── child.rs
│       │   ├── collection.rs
│       │   ├── collection_float.rs
│       │   ├── filling.rs
│       │   ├── fruit.rs
│       │   ├── mod.rs
│       │   ├── parent.rs
│       │   ├── prelude.rs
│       │   ├── rust_keyword.rs
│       │   └── vendor.rs
│       ├── expanded/
│       │   ├── cake.rs
│       │   ├── cake_filling.rs
│       │   ├── cake_filling_price.rs
│       │   ├── cake_with_double.rs
│       │   ├── cake_with_float.rs
│       │   ├── child.rs
│       │   ├── collection.rs
│       │   ├── collection_float.rs
│       │   ├── filling.rs
│       │   ├── fruit.rs
│       │   ├── mod.rs
│       │   ├── parent.rs
│       │   ├── prelude.rs
│       │   ├── rust_keyword.rs
│       │   └── vendor.rs
│       ├── expanded_with_attributes/
│       │   ├── cake_multiple.rs
│       │   ├── cake_none.rs
│       │   └── cake_one.rs
│       ├── expanded_with_column_derives/
│       │   ├── cake_multiple.rs
│       │   ├── cake_none.rs
│       │   └── cake_one.rs
│       ├── expanded_with_derives/
│       │   ├── cake_multiple.rs
│       │   ├── cake_none.rs
│       │   └── cake_one.rs
│       ├── expanded_with_schema_name/
│       │   ├── cake.rs
│       │   ├── cake_filling.rs
│       │   ├── cake_filling_price.rs
│       │   ├── cake_with_double.rs
│       │   ├── cake_with_float.rs
│       │   ├── child.rs
│       │   ├── collection.rs
│       │   ├── collection_float.rs
│       │   ├── filling.rs
│       │   ├── fruit.rs
│       │   ├── mod.rs
│       │   ├── parent.rs
│       │   ├── prelude.rs
│       │   ├── rust_keyword.rs
│       │   └── vendor.rs
│       ├── expanded_with_serde/
│       │   ├── cake_both.rs
│       │   ├── cake_deserialize.rs
│       │   ├── cake_none.rs
│       │   ├── cake_serialize.rs
│       │   └── cake_serialize_with_hidden_column.rs
│       ├── frontend/
│       │   ├── cake.rs
│       │   ├── cake_filling.rs
│       │   ├── cake_filling_price.rs
│       │   ├── cake_with_double.rs
│       │   ├── cake_with_float.rs
│       │   ├── child.rs
│       │   ├── collection.rs
│       │   ├── collection_float.rs
│       │   ├── filling.rs
│       │   ├── fruit.rs
│       │   ├── mod.rs
│       │   ├── parent.rs
│       │   ├── prelude.rs
│       │   ├── rust_keyword.rs
│       │   └── vendor.rs
│       ├── frontend_with_attributes/
│       │   ├── cake_multiple.rs
│       │   ├── cake_none.rs
│       │   └── cake_one.rs
│       ├── frontend_with_derives/
│       │   ├── cake_multiple.rs
│       │   ├── cake_none.rs
│       │   └── cake_one.rs
│       ├── frontend_with_schema_name/
│       │   ├── cake.rs
│       │   ├── cake_filling.rs
│       │   ├── cake_filling_price.rs
│       │   ├── cake_with_double.rs
│       │   ├── cake_with_float.rs
│       │   ├── child.rs
│       │   ├── collection.rs
│       │   ├── collection_float.rs
│       │   ├── filling.rs
│       │   ├── fruit.rs
│       │   ├── mod.rs
│       │   ├── parent.rs
│       │   ├── prelude.rs
│       │   ├── rust_keyword.rs
│       │   └── vendor.rs
│       ├── frontend_with_serde/
│       │   ├── cake_both.rs
│       │   ├── cake_deserialize.rs
│       │   ├── cake_none.rs
│       │   ├── cake_serialize.rs
│       │   └── cake_serialize_with_hidden_column.rs
│       ├── postgres/
│       │   ├── binary_json.rs
│       │   └── binary_json_expanded.rs
│       └── with_seaography/
│           ├── cake.rs
│           ├── cake_expanded.rs
│           ├── cake_frontend.rs
│           └── mod.rs
├── sea-orm-macros/
│   ├── Cargo.toml
│   ├── src/
│   │   ├── derives/
│   │   │   ├── active_enum.rs
│   │   │   ├── active_enum_display.rs
│   │   │   ├── active_model.rs
│   │   │   ├── active_model_behavior.rs
│   │   │   ├── active_model_ex.rs
│   │   │   ├── arrow_schema.rs
│   │   │   ├── attributes.rs
│   │   │   ├── case_style.rs
│   │   │   ├── column.rs
│   │   │   ├── derive_iden.rs
│   │   │   ├── entity.rs
│   │   │   ├── entity_loader.rs
│   │   │   ├── entity_model.rs
│   │   │   ├── from_query_result.rs
│   │   │   ├── into_active_model.rs
│   │   │   ├── migration.rs
│   │   │   ├── mod.rs
│   │   │   ├── model.rs
│   │   │   ├── model_ex.rs
│   │   │   ├── partial_model.rs
│   │   │   ├── primary_key.rs
│   │   │   ├── related_entity.rs
│   │   │   ├── relation.rs
│   │   │   ├── try_getable_from_json.rs
│   │   │   ├── typed_column.rs
│   │   │   ├── util.rs
│   │   │   ├── value_type.rs
│   │   │   └── value_type_match.rs
│   │   ├── lib.rs
│   │   ├── raw_sql.rs
│   │   └── strum/
│   │       ├── LICENSE
│   │       ├── enum_iter.rs
│   │       ├── helpers/
│   │       │   ├── case_style.rs
│   │       │   ├── metadata.rs
│   │       │   ├── mod.rs
│   │       │   ├── type_props.rs
│   │       │   └── variant_props.rs
│   │       └── mod.rs
│   └── tests/
│       ├── derive_active_enum_test.rs
│       ├── derive_entity_model_auto_increment_test.rs
│       ├── derive_entity_model_column_name_test.rs
│       └── derive_value_type_test.rs
├── sea-orm-migration/
│   ├── Cargo.toml
│   ├── README.md
│   ├── src/
│   │   ├── cli.rs
│   │   ├── connection.rs
│   │   ├── lib.rs
│   │   ├── manager.rs
│   │   ├── migrator/
│   │   │   ├── exec.rs
│   │   │   ├── queries.rs
│   │   │   └── with_self.rs
│   │   ├── migrator.rs
│   │   ├── prelude.rs
│   │   ├── schema.rs
│   │   ├── seaql_migrations.rs
│   │   └── util.rs
│   └── tests/
│       ├── common/
│       │   ├── migration/
│       │   │   ├── m20220118_000001_create_cake_table.rs
│       │   │   ├── m20220118_000002_create_fruit_table.rs
│       │   │   ├── m20220118_000003_seed_cake_table.rs
│       │   │   ├── m20220118_000004_create_tea_enum.rs
│       │   │   ├── m20220923_000001_seed_cake_table.rs
│       │   │   ├── m20230109_000001_seed_cake_table.rs
│       │   │   ├── m20250101_000001_create_test_table.rs
│       │   │   ├── m20250101_000002_manual_transaction.rs
│       │   │   └── mod.rs
│       │   ├── migrator/
│       │   │   ├── default.rs
│       │   │   ├── mod.rs
│       │   │   ├── override_migration_table_name.rs
│       │   │   ├── transaction_test.rs
│       │   │   └── with_self.rs
│       │   └── mod.rs
│       ├── main.rs
│       └── postgres.rs
├── sea-orm-rocket/
│   ├── Cargo.toml
│   ├── README.md
│   ├── codegen/
│   │   ├── Cargo.toml
│   │   └── src/
│   │       ├── database.rs
│   │       └── lib.rs
│   └── lib/
│       ├── Cargo.toml
│       └── src/
│           ├── config.rs
│           ├── database.rs
│           ├── error.rs
│           ├── lib.rs
│           └── pool.rs
├── sea-orm-sync/
│   ├── CLAUDE.md
│   ├── Cargo.toml
│   ├── README.md
│   ├── examples/
│   │   ├── parquet_example/
│   │   │   ├── Cargo.toml
│   │   │   └── src/
│   │   │       └── main.rs
│   │   ├── pi_spigot/
│   │   │   ├── Cargo.toml
│   │   │   ├── README.md
│   │   │   ├── bdigits.html
│   │   │   └── src/
│   │   │       ├── lib.rs
│   │   │       └── main.rs
│   │   └── quickstart/
│   │       ├── Cargo.toml
│   │       ├── README.md
│   │       └── src/
│   │           └── main.rs
│   ├── src/
│   │   ├── database/
│   │   │   ├── connection.rs
│   │   │   ├── db_connection.rs
│   │   │   ├── executor.rs
│   │   │   ├── mock.rs
│   │   │   ├── mod.rs
│   │   │   ├── proxy.rs
│   │   │   ├── restricted_connection.rs
│   │   │   ├── sea_schema_rusqlite.rs
│   │   │   ├── sea_schema_shim.rs
│   │   │   ├── statement.rs
│   │   │   ├── stream/
│   │   │   │   ├── metric.rs
│   │   │   │   ├── mod.rs
│   │   │   │   ├── query.rs
│   │   │   │   └── transaction.rs
│   │   │   ├── tracing_spans.rs
│   │   │   └── transaction.rs
│   │   ├── docs.rs
│   │   ├── driver/
│   │   │   ├── mock.rs
│   │   │   ├── mod.rs
│   │   │   ├── proxy.rs
│   │   │   ├── rusqlite.rs
│   │   │   ├── sqlite.rs
│   │   │   ├── sqlx_common.rs
│   │   │   ├── sqlx_mysql.rs
│   │   │   ├── sqlx_postgres.rs
│   │   │   └── sqlx_sqlite.rs
│   │   ├── dynamic/
│   │   │   ├── entity.rs
│   │   │   ├── execute.rs
│   │   │   ├── mod.rs
│   │   │   └── model.rs
│   │   ├── entity/
│   │   │   ├── ARROW.md
│   │   │   ├── DESIGN.md
│   │   │   ├── active_enum.rs
│   │   │   ├── active_model.rs
│   │   │   ├── active_model_ex.rs
│   │   │   ├── active_value.rs
│   │   │   ├── arrow_schema.rs
│   │   │   ├── base_entity.rs
│   │   │   ├── column/
│   │   │   │   ├── types/
│   │   │   │   │   ├── postgres_array.rs
│   │   │   │   │   ├── with_datetime.rs
│   │   │   │   │   ├── with_ipnetwork.rs
│   │   │   │   │   ├── with_json.rs
│   │   │   │   │   └── with_uuid.rs
│   │   │   │   └── types.rs
│   │   │   ├── column.rs
│   │   │   ├── column_def.rs
│   │   │   ├── compound/
│   │   │   │   ├── has_many.rs
│   │   │   │   └── has_one.rs
│   │   │   ├── compound.rs
│   │   │   ├── identity.rs
│   │   │   ├── link.rs
│   │   │   ├── mod.rs
│   │   │   ├── model.rs
│   │   │   ├── partial_model.rs
│   │   │   ├── prelude.rs
│   │   │   ├── primary_key.rs
│   │   │   ├── registry.rs
│   │   │   ├── relation.rs
│   │   │   └── with_arrow.rs
│   │   ├── error.rs
│   │   ├── executor/
│   │   │   ├── consolidate.rs
│   │   │   ├── cursor.rs
│   │   │   ├── delete.rs
│   │   │   ├── execute.rs
│   │   │   ├── insert.rs
│   │   │   ├── mod.rs
│   │   │   ├── paginator.rs
│   │   │   ├── query.rs
│   │   │   ├── returning.rs
│   │   │   ├── select/
│   │   │   │   ├── five.rs
│   │   │   │   ├── four.rs
│   │   │   │   ├── six.rs
│   │   │   │   └── three.rs
│   │   │   ├── select.rs
│   │   │   ├── select_ext.rs
│   │   │   └── update.rs
│   │   ├── lib.rs
│   │   ├── metric.rs
│   │   ├── query/
│   │   │   ├── combine.rs
│   │   │   ├── debug.rs
│   │   │   ├── delete.rs
│   │   │   ├── helper.rs
│   │   │   ├── insert.rs
│   │   │   ├── join.rs
│   │   │   ├── json.rs
│   │   │   ├── loader.rs
│   │   │   ├── mod.rs
│   │   │   ├── select.rs
│   │   │   ├── traits.rs
│   │   │   ├── update.rs
│   │   │   └── util.rs
│   │   ├── rbac/
│   │   │   ├── context.rs
│   │   │   ├── engine/
│   │   │   │   ├── loader.rs
│   │   │   │   ├── mod.rs
│   │   │   │   ├── permission_request.rs
│   │   │   │   ├── resource_request.rs
│   │   │   │   ├── role_hierarchy_impl.rs
│   │   │   │   └── snapshot.rs
│   │   │   ├── entity/
│   │   │   │   ├── mod.rs
│   │   │   │   ├── permission.rs
│   │   │   │   ├── resource.rs
│   │   │   │   ├── role.rs
│   │   │   │   ├── role_hierarchy.rs
│   │   │   │   ├── role_permission.rs
│   │   │   │   ├── user.rs
│   │   │   │   ├── user_override.rs
│   │   │   │   └── user_role.rs
│   │   │   ├── error.rs
│   │   │   ├── mod.rs
│   │   │   └── schema.rs
│   │   ├── schema/
│   │   │   ├── builder.rs
│   │   │   ├── entity.rs
│   │   │   ├── json.rs
│   │   │   ├── mod.rs
│   │   │   └── topology.rs
│   │   ├── tests_cfg/
│   │   │   ├── cake.rs
│   │   │   ├── cake_compact.rs
│   │   │   ├── cake_expanded.rs
│   │   │   ├── cake_filling.rs
│   │   │   ├── cake_filling_price.rs
│   │   │   ├── cake_seaography.rs
│   │   │   ├── comment.rs
│   │   │   ├── entity_linked.rs
│   │   │   ├── filling.rs
│   │   │   ├── fruit.rs
│   │   │   ├── indexes.rs
│   │   │   ├── ingredient.rs
│   │   │   ├── lunch_set.rs
│   │   │   ├── lunch_set_expanded.rs
│   │   │   ├── mod.rs
│   │   │   ├── post.rs
│   │   │   ├── post_tag.rs
│   │   │   ├── profile.rs
│   │   │   ├── registry.rs
│   │   │   ├── rust_keyword.rs
│   │   │   ├── sea_orm_active_enums.rs
│   │   │   ├── serde_rename.rs
│   │   │   ├── tag.rs
│   │   │   ├── user.rs
│   │   │   └── vendor.rs
│   │   ├── util.rs
│   │   ├── value/
│   │   │   ├── text_uuid.rs
│   │   │   ├── timestamp.rs
│   │   │   ├── with_chrono.rs
│   │   │   └── with_time.rs
│   │   └── value.rs
│   └── tests/
│       ├── active_enum_tests.rs
│       ├── active_model_ex_tests.rs
│       ├── arrow_schema_tests.rs
│       ├── arrow_tests.rs
│       ├── basic.rs
│       ├── bits_tests.rs
│       ├── byte_primary_key_tests.rs
│       ├── collection_tests.rs
│       ├── common/
│       │   ├── bakery_chain/
│       │   │   ├── Readme.md
│       │   │   ├── baker.rs
│       │   │   ├── bakery.rs
│       │   │   ├── cake.rs
│       │   │   ├── cakes_bakers.rs
│       │   │   ├── customer.rs
│       │   │   ├── lineitem.rs
│       │   │   ├── mod.rs
│       │   │   ├── order.rs
│       │   │   ├── schema.rs
│       │   │   └── seed_data.rs
│       │   ├── bakery_dense/
│       │   │   ├── NOTES.md
│       │   │   ├── baker.rs
│       │   │   ├── bakery.rs
│       │   │   ├── cake.rs
│       │   │   ├── cakes_bakers.rs
│       │   │   ├── customer.rs
│       │   │   ├── entities.mermaid
│       │   │   ├── lineitem.rs
│       │   │   ├── mod.rs
│       │   │   ├── order.rs
│       │   │   └── prelude.rs
│       │   ├── blogger/
│       │   │   ├── attachment.rs
│       │   │   ├── comment.rs
│       │   │   ├── mod.rs
│       │   │   ├── post.rs
│       │   │   ├── post_tag.rs
│       │   │   ├── profile.rs
│       │   │   ├── tag.rs
│       │   │   ├── user.rs
│       │   │   ├── user_follower.rs
│       │   │   └── user_mono.rs
│       │   ├── features/
│       │   │   ├── active_enum.rs
│       │   │   ├── active_enum_child.rs
│       │   │   ├── active_enum_vec.rs
│       │   │   ├── applog.rs
│       │   │   ├── binary.rs
│       │   │   ├── bits.rs
│       │   │   ├── byte_primary_key.rs
│       │   │   ├── categories.rs
│       │   │   ├── collection.rs
│       │   │   ├── collection_expanded.rs
│       │   │   ├── custom_active_model.rs
│       │   │   ├── dyn_table_name.rs
│       │   │   ├── edit_log.rs
│       │   │   ├── embedding.rs
│       │   │   ├── event_trigger.rs
│       │   │   ├── host_network.rs
│       │   │   ├── insert_default.rs
│       │   │   ├── json_struct.rs
│       │   │   ├── json_vec.rs
│       │   │   ├── json_vec_derive.rs
│       │   │   ├── metadata.rs
│       │   │   ├── mod.rs
│       │   │   ├── pi.rs
│       │   │   ├── repository.rs
│       │   │   ├── satellite.rs
│       │   │   ├── schema.rs
│       │   │   ├── sea_orm_active_enums.rs
│       │   │   ├── self_join.rs
│       │   │   ├── teas.rs
│       │   │   ├── transaction_log.rs
│       │   │   ├── uuid_fmt.rs
│       │   │   └── value_type.rs
│       │   ├── film_store.rs
│       │   ├── mod.rs
│       │   ├── runtime.rs
│       │   ├── sakila/
│       │   │   ├── NOTES.md
│       │   │   └── entities.mermaid
│       │   └── setup/
│       │       └── mod.rs
│       ├── connection_tests.rs
│       ├── crud/
│       │   ├── create_baker.rs
│       │   ├── create_cake.rs
│       │   ├── create_lineitem.rs
│       │   ├── create_order.rs
│       │   ├── deletes.rs
│       │   ├── error.rs
│       │   ├── mod.rs
│       │   └── updates.rs
│       ├── crud_tests.rs
│       ├── cursor_tests.rs
│       ├── database_executor_tests.rs
│       ├── delete_by_id_tests.rs
│       ├── derive_iden_tests.rs
│       ├── derive_model_tests.rs
│       ├── derive_tests.rs
│       ├── dyn_table_name_tests.rs
│       ├── embedding_tests.rs
│       ├── empty_insert_tests.rs
│       ├── entity_loader_tests.rs
│       ├── enum_primary_key_tests.rs
│       ├── event_trigger_tests.rs
│       ├── execute_unprepared_tests.rs
│       ├── exists_tests.rs
│       ├── from_query_result_tests.rs
│       ├── host_network_tests.rs
│       ├── impl_from_for_active_model.rs
│       ├── insert_default_tests.rs
│       ├── json_struct_tests.rs
│       ├── json_vec_tests.rs
│       ├── loader_tests.rs
│       ├── multi_select_tests.rs
│       ├── paginator_tests.rs
│       ├── parallel_tests.rs
│       ├── partial_model_nested/
│       │   ├── local/
│       │   │   ├── mod.rs
│       │   │   └── model/
│       │   │       ├── bakery.rs
│       │   │       ├── mod.rs
│       │   │       ├── schema.rs
│       │   │       └── worker.rs
│       │   ├── main.rs
│       │   └── nested_alias.rs
│       ├── partial_model_tests.rs
│       ├── pi_tests.rs
│       ├── query_tests.rs
│       ├── raw_sql_tests.rs
│       ├── rbac_tests.rs
│       ├── relational_tests.rs
│       ├── returning_tests.rs
│       ├── schema_sync_tests.rs
│       ├── self_join_tests.rs
│       ├── sequential_op_tests.rs
│       ├── sql_err_tests.rs
│       ├── stream_tests.rs
│       ├── string_primary_key_tests.rs
│       ├── text_uuid_tests.rs
│       ├── time_crate_tests.rs
│       ├── timestamp_tests.rs
│       ├── transaction_tests.rs
│       ├── type_tests.rs
│       ├── upsert_tests.rs
│       ├── uuid_fmt_tests.rs
│       ├── uuid_tests.rs
│       └── value_type_tests.rs
├── src/
│   ├── database/
│   │   ├── connection.rs
│   │   ├── db_connection.rs
│   │   ├── executor.rs
│   │   ├── mock.rs
│   │   ├── mod.rs
│   │   ├── proxy.rs
│   │   ├── restricted_connection.rs
│   │   ├── sea_schema_rusqlite.rs
│   │   ├── sea_schema_shim.rs
│   │   ├── statement.rs
│   │   ├── stream/
│   │   │   ├── metric.rs
│   │   │   ├── mod.rs
│   │   │   ├── query.rs
│   │   │   └── transaction.rs
│   │   ├── tracing_spans.rs
│   │   └── transaction.rs
│   ├── docs.rs
│   ├── driver/
│   │   ├── mock.rs
│   │   ├── mod.rs
│   │   ├── proxy.rs
│   │   ├── rusqlite.rs
│   │   ├── sqlite.rs
│   │   ├── sqlx_common.rs
│   │   ├── sqlx_mysql.rs
│   │   ├── sqlx_postgres.rs
│   │   └── sqlx_sqlite.rs
│   ├── dynamic/
│   │   ├── entity.rs
│   │   ├── execute.rs
│   │   ├── mod.rs
│   │   └── model.rs
│   ├── entity/
│   │   ├── ARROW.md
│   │   ├── DESIGN.md
│   │   ├── active_enum.rs
│   │   ├── active_model.rs
│   │   ├── active_model_ex.rs
│   │   ├── active_value.rs
│   │   ├── arrow_schema.rs
│   │   ├── base_entity.rs
│   │   ├── column/
│   │   │   ├── types/
│   │   │   │   ├── postgres_array.rs
│   │   │   │   ├── with_datetime.rs
│   │   │   │   ├── with_ipnetwork.rs
│   │   │   │   ├── with_json.rs
│   │   │   │   └── with_uuid.rs
│   │   │   └── types.rs
│   │   ├── column.rs
│   │   ├── column_def.rs
│   │   ├── compound/
│   │   │   ├── has_many.rs
│   │   │   └── has_one.rs
│   │   ├── compound.rs
│   │   ├── identity.rs
│   │   ├── link.rs
│   │   ├── mod.rs
│   │   ├── model.rs
│   │   ├── partial_model.rs
│   │   ├── prelude.rs
│   │   ├── primary_key.rs
│   │   ├── registry.rs
│   │   ├── relation.rs
│   │   └── with_arrow.rs
│   ├── error.rs
│   ├── executor/
│   │   ├── consolidate.rs
│   │   ├── cursor.rs
│   │   ├── delete.rs
│   │   ├── execute.rs
│   │   ├── insert.rs
│   │   ├── mod.rs
│   │   ├── paginator.rs
│   │   ├── query.rs
│   │   ├── returning.rs
│   │   ├── select/
│   │   │   ├── five.rs
│   │   │   ├── four.rs
│   │   │   ├── six.rs
│   │   │   └── three.rs
│   │   ├── select.rs
│   │   ├── select_ext.rs
│   │   └── update.rs
│   ├── lib.rs
│   ├── metric.rs
│   ├── query/
│   │   ├── combine.rs
│   │   ├── debug.rs
│   │   ├── delete.rs
│   │   ├── helper.rs
│   │   ├── insert.rs
│   │   ├── join.rs
│   │   ├── json.rs
│   │   ├── loader.rs
│   │   ├── mod.rs
│   │   ├── select.rs
│   │   ├── traits.rs
│   │   ├── update.rs
│   │   └── util.rs
│   ├── rbac/
│   │   ├── context.rs
│   │   ├── engine/
│   │   │   ├── loader.rs
│   │   │   ├── mod.rs
│   │   │   ├── permission_request.rs
│   │   │   ├── resource_request.rs
│   │   │   ├── role_hierarchy_impl.rs
│   │   │   └── snapshot.rs
│   │   ├── entity/
│   │   │   ├── mod.rs
│   │   │   ├── permission.rs
│   │   │   ├── resource.rs
│   │   │   ├── role.rs
│   │   │   ├── role_hierarchy.rs
│   │   │   ├── role_permission.rs
│   │   │   ├── user.rs
│   │   │   ├── user_override.rs
│   │   │   └── user_role.rs
│   │   ├── error.rs
│   │   ├── mod.rs
│   │   └── schema.rs
│   ├── schema/
│   │   ├── builder.rs
│   │   ├── entity.rs
│   │   ├── json.rs
│   │   ├── mod.rs
│   │   └── topology.rs
│   ├── tests_cfg/
│   │   ├── cake.rs
│   │   ├── cake_compact.rs
│   │   ├── cake_expanded.rs
│   │   ├── cake_filling.rs
│   │   ├── cake_filling_price.rs
│   │   ├── cake_seaography.rs
│   │   ├── comment.rs
│   │   ├── entity_linked.rs
│   │   ├── filling.rs
│   │   ├── fruit.rs
│   │   ├── indexes.rs
│   │   ├── ingredient.rs
│   │   ├── lunch_set.rs
│   │   ├── lunch_set_expanded.rs
│   │   ├── mod.rs
│   │   ├── post.rs
│   │   ├── post_tag.rs
│   │   ├── profile.rs
│   │   ├── registry.rs
│   │   ├── rust_keyword.rs
│   │   ├── sea_orm_active_enums.rs
│   │   ├── serde_rename.rs
│   │   ├── tag.rs
│   │   ├── user.rs
│   │   └── vendor.rs
│   ├── util.rs
│   ├── value/
│   │   ├── text_uuid.rs
│   │   ├── timestamp.rs
│   │   ├── with_chrono.rs
│   │   └── with_time.rs
│   └── value.rs
└── tests/
    ├── active_enum_tests.rs
    ├── active_model_ex_tests.rs
    ├── arrow_schema_tests.rs
    ├── arrow_tests.rs
    ├── basic.rs
    ├── bits_tests.rs
    ├── byte_primary_key_tests.rs
    ├── collection_tests.rs
    ├── common/
    │   ├── bakery_chain/
    │   │   ├── Readme.md
    │   │   ├── baker.rs
    │   │   ├── bakery.rs
    │   │   ├── cake.rs
    │   │   ├── cakes_bakers.rs
    │   │   ├── customer.rs
    │   │   ├── lineitem.rs
    │   │   ├── mod.rs
    │   │   ├── order.rs
    │   │   ├── schema.rs
    │   │   └── seed_data.rs
    │   ├── bakery_dense/
    │   │   ├── NOTES.md
    │   │   ├── baker.rs
    │   │   ├── bakery.rs
    │   │   ├── cake.rs
    │   │   ├── cakes_bakers.rs
    │   │   ├── customer.rs
    │   │   ├── entities.mermaid
    │   │   ├── lineitem.rs
    │   │   ├── mod.rs
    │   │   ├── order.rs
    │   │   └── prelude.rs
    │   ├── blogger/
    │   │   ├── attachment.rs
    │   │   ├── comment.rs
    │   │   ├── mod.rs
    │   │   ├── post.rs
    │   │   ├── post_tag.rs
    │   │   ├── profile.rs
    │   │   ├── tag.rs
    │   │   ├── user.rs
    │   │   ├── user_follower.rs
    │   │   └── user_mono.rs
    │   ├── features/
    │   │   ├── active_enum.rs
    │   │   ├── active_enum_child.rs
    │   │   ├── active_enum_vec.rs
    │   │   ├── applog.rs
    │   │   ├── binary.rs
    │   │   ├── bits.rs
    │   │   ├── byte_primary_key.rs
    │   │   ├── categories.rs
    │   │   ├── collection.rs
    │   │   ├── collection_expanded.rs
    │   │   ├── custom_active_model.rs
    │   │   ├── dyn_table_name.rs
    │   │   ├── edit_log.rs
    │   │   ├── embedding.rs
    │   │   ├── event_trigger.rs
    │   │   ├── host_network.rs
    │   │   ├── insert_default.rs
    │   │   ├── json_struct.rs
    │   │   ├── json_vec.rs
    │   │   ├── json_vec_derive.rs
    │   │   ├── metadata.rs
    │   │   ├── mod.rs
    │   │   ├── pi.rs
    │   │   ├── repository.rs
    │   │   ├── satellite.rs
    │   │   ├── schema.rs
    │   │   ├── sea_orm_active_enums.rs
    │   │   ├── self_join.rs
    │   │   ├── teas.rs
    │   │   ├── transaction_log.rs
    │   │   ├── uuid_fmt.rs
    │   │   └── value_type.rs
    │   ├── film_store.rs
    │   ├── mod.rs
    │   ├── runtime.rs
    │   ├── sakila/
    │   │   ├── NOTES.md
    │   │   └── entities.mermaid
    │   └── setup/
    │       └── mod.rs
    ├── connection_tests.rs
    ├── crud/
    │   ├── create_baker.rs
    │   ├── create_cake.rs
    │   ├── create_lineitem.rs
    │   ├── create_order.rs
    │   ├── deletes.rs
    │   ├── error.rs
    │   ├── mod.rs
    │   └── updates.rs
    ├── crud_tests.rs
    ├── cursor_tests.rs
    ├── database_executor_tests.rs
    ├── delete_by_id_tests.rs
    ├── derive_iden_tests.rs
    ├── derive_model_tests.rs
    ├── derive_tests.rs
    ├── dyn_table_name_tests.rs
    ├── embedding_tests.rs
    ├── empty_insert_tests.rs
    ├── entity_loader_tests.rs
    ├── enum_primary_key_tests.rs
    ├── event_trigger_tests.rs
    ├── execute_unprepared_tests.rs
    ├── exists_tests.rs
    ├── from_query_result_tests.rs
    ├── host_network_tests.rs
    ├── impl_from_for_active_model.rs
    ├── insert_default_tests.rs
    ├── json_struct_tests.rs
    ├── json_vec_tests.rs
    ├── loader_tests.rs
    ├── multi_select_tests.rs
    ├── paginator_tests.rs
    ├── parallel_tests.rs
    ├── partial_model_nested/
    │   ├── local/
    │   │   ├── mod.rs
    │   │   └── model/
    │   │       ├── bakery.rs
    │   │       ├── mod.rs
    │   │       ├── schema.rs
    │   │       └── worker.rs
    │   ├── main.rs
    │   └── nested_alias.rs
    ├── partial_model_tests.rs
    ├── pi_tests.rs
    ├── query_tests.rs
    ├── raw_sql_tests.rs
    ├── rbac_tests.rs
    ├── relational_tests.rs
    ├── returning_tests.rs
    ├── schema_sync_tests.rs
    ├── self_join_tests.rs
    ├── sequential_op_tests.rs
    ├── sql_err_tests.rs
    ├── stream_tests.rs
    ├── string_primary_key_tests.rs
    ├── text_uuid_tests.rs
    ├── time_crate_tests.rs
    ├── timestamp_tests.rs
    ├── transaction_tests.rs
    ├── type_tests.rs
    ├── upsert_tests.rs
    ├── uuid_fmt_tests.rs
    ├── uuid_tests.rs
    └── value_type_tests.rs
Download .txt
Showing preview only (714K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (8574 symbols across 1024 files)

FILE: examples/actix_example/api/src/lib.rs
  constant DEFAULT_POSTS_PER_PAGE (line 17) | const DEFAULT_POSTS_PER_PAGE: u64 = 5;
  type AppState (line 20) | struct AppState {
  type Params (line 26) | pub struct Params {
  type FlashData (line 32) | struct FlashData {
  function list (line 38) | async fn list(req: HttpRequest, data: web::Data<AppState>) -> Result<Htt...
  function new (line 65) | async fn new(data: web::Data<AppState>) -> Result<HttpResponse, Error> {
  function create (line 75) | async fn create(
  function edit (line 93) | async fn edit(data: web::Data<AppState>, id: web::Path<i32>) -> Result<H...
  function update (line 123) | async fn update(
  function delete (line 142) | async fn delete(data: web::Data<AppState>, id: web::Path<i32>) -> Result...
  function not_found (line 155) | async fn not_found(data: web::Data<AppState>, request: HttpRequest) -> R...
  function start (line 168) | async fn start() -> std::io::Result<()> {
  function init (line 212) | fn init(cfg: &mut web::ServiceConfig) {
  function main (line 221) | pub fn main() {

FILE: examples/actix_example/api/src/service/mutation.rs
  type Mutation (line 4) | pub struct Mutation;
    method create_post (line 7) | pub async fn create_post(
    method update_post_by_id (line 20) | pub async fn update_post_by_id(
    method delete_post (line 40) | pub async fn delete_post(db: &DbConn, id: i32) -> Result<DeleteResult,...
    method delete_all_posts (line 50) | pub async fn delete_all_posts(db: &DbConn) -> Result<DeleteResult, DbE...

FILE: examples/actix_example/api/src/service/query.rs
  type Query (line 4) | pub struct Query;
    method find_post_by_id (line 7) | pub async fn find_post_by_id(db: &DbConn, id: i32) -> Result<Option<po...
    method find_posts_in_page (line 12) | pub async fn find_posts_in_page(

FILE: examples/actix_example/api/tests/crud_tests.rs
  function crud_tests (line 6) | async fn crud_tests() {

FILE: examples/actix_example/entity/src/post.rs
  type Model (line 9) | pub struct Model {

FILE: examples/actix_example/migration/src/lib.rs
  type Migrator (line 6) | pub struct Migrator;
  method migrations (line 10) | fn migrations() -> Vec<Box<dyn MigrationTrait>> {

FILE: examples/actix_example/migration/src/m20220120_000001_create_post_table.rs
  type Migration (line 4) | pub struct Migration;
  method up (line 8) | async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
  method down (line 22) | async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {

FILE: examples/actix_example/migration/src/m20220120_000002_seed_posts.rs
  type Migration (line 6) | pub struct Migration;
  method up (line 10) | async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
  method down (line 31) | async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {

FILE: examples/actix_example/migration/src/main.rs
  function main (line 4) | async fn main() {

FILE: examples/actix_example/src/main.rs
  function main (line 1) | fn main() {

FILE: examples/axum_example/api/src/flash.rs
  type ValuedMessage (line 6) | struct ValuedMessage<T> {
  type ValuedMessageRef (line 12) | struct ValuedMessageRef<'a, T> {
  constant FLASH_COOKIE_NAME (line 17) | const FLASH_COOKIE_NAME: &str = "_flash";
  function get_flash_cookie (line 19) | pub fn get_flash_cookie<T>(cookies: &Cookies) -> Option<T>
  type PostResponse (line 32) | pub type PostResponse = (StatusCode, HeaderMap);
  function post_response (line 34) | pub fn post_response<T>(cookies: &mut Cookies, data: T) -> PostResponse

FILE: examples/axum_example/api/src/lib.rs
  function start (line 23) | async fn start() -> anyhow::Result<()> {
  type AppState (line 73) | struct AppState {
  type Params (line 79) | struct Params {
  type FlashData (line 85) | struct FlashData {
  function list_posts (line 90) | async fn list_posts(
  function new_post (line 120) | async fn new_post(state: State<AppState>) -> Result<Html<String>, (Statu...
  function create_post (line 130) | async fn create_post(
  function edit_post (line 149) | async fn edit_post(
  function update_post (line 169) | async fn update_post(
  function delete_post (line 189) | async fn delete_post(
  function main (line 206) | pub fn main() {

FILE: examples/axum_example/api/src/service/mutation.rs
  type Mutation (line 4) | pub struct Mutation;
    method create_post (line 7) | pub async fn create_post(
    method update_post_by_id (line 20) | pub async fn update_post_by_id(
    method delete_post (line 40) | pub async fn delete_post(db: &DbConn, id: i32) -> Result<DeleteResult,...
    method delete_all_posts (line 50) | pub async fn delete_all_posts(db: &DbConn) -> Result<DeleteResult, DbE...

FILE: examples/axum_example/api/src/service/query.rs
  type Query (line 4) | pub struct Query;
    method find_post_by_id (line 7) | pub async fn find_post_by_id(db: &DbConn, id: i32) -> Result<Option<po...
    method find_posts_in_page (line 12) | pub async fn find_posts_in_page(

FILE: examples/axum_example/api/tests/crud_tests.rs
  function crud_tests (line 6) | async fn crud_tests() {

FILE: examples/axum_example/entity/src/post.rs
  type Model (line 9) | pub struct Model {

FILE: examples/axum_example/migration/src/lib.rs
  type Migrator (line 6) | pub struct Migrator;
  method migrations (line 10) | fn migrations() -> Vec<Box<dyn MigrationTrait>> {

FILE: examples/axum_example/migration/src/m20220120_000001_create_post_table.rs
  type Migration (line 4) | pub struct Migration;
  method up (line 8) | async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
  method down (line 22) | async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {

FILE: examples/axum_example/migration/src/m20220120_000002_seed_posts.rs
  type Migration (line 6) | pub struct Migration;
  method up (line 10) | async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
  method down (line 31) | async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {

FILE: examples/axum_example/migration/src/main.rs
  function main (line 4) | async fn main() {

FILE: examples/axum_example/src/main.rs
  function main (line 1) | fn main() {

FILE: examples/basic/bakery.sql
  type `cake` (line 3) | CREATE TABLE `cake` (
  type `fruit` (line 15) | CREATE TABLE `fruit` (
  type `filling` (line 38) | CREATE TABLE `filling` (
  type `cake_filling` (line 51) | CREATE TABLE `cake_filling` (

FILE: examples/basic/src/entity/cake.rs
  type Model (line 8) | pub struct Model {

FILE: examples/basic/src/entity/cake_filling.rs
  type Model (line 8) | pub struct Model {

FILE: examples/basic/src/entity/filling.rs
  type Model (line 8) | pub struct Model {

FILE: examples/basic/src/entity/fruit.rs
  type Model (line 8) | pub struct Model {

FILE: examples/basic/src/entity/sea_orm_active_enums.rs
  type Tea (line 8) | pub enum Tea {

FILE: examples/basic/src/main.rs
  function main (line 16) | async fn main() {

FILE: examples/basic/src/mutation.rs
  function all_about_mutation (line 4) | pub async fn all_about_mutation(db: &DbConn) -> Result<(), DbErr> {
  function insert_and_update (line 18) | pub async fn insert_and_update(db: &DbConn) -> Result<(), DbErr> {
  function save_active_model (line 45) | pub async fn save_active_model(db: &DbConn) -> Result<(), DbErr> {
  type InputModel (line 72) | pub struct InputModel {
  function save_custom_active_model (line 77) | async fn save_custom_active_model(db: &DbConn) -> Result<(), DbErr> {

FILE: examples/basic/src/query.rs
  function all_about_query (line 4) | pub async fn all_about_query(db: &DbConn) -> Result<(), DbErr> {
  function find_all (line 48) | async fn find_all(db: &DbConn) -> Result<(), DbErr> {
  function find_one_to_one (line 70) | async fn find_one_to_one(db: &DbConn) -> Result<(), DbErr> {
  function find_one_to_many (line 92) | async fn find_one_to_many(db: &DbConn) -> Result<(), DbErr> {
  method find_by_name (line 117) | fn find_by_name(name: &str) -> Select<Self> {
  function find_one (line 122) | async fn find_one(db: &DbConn) -> Result<(), DbErr> {
  function count_fruits_by_cake (line 152) | async fn count_fruits_by_cake(db: &DbConn) -> Result<(), DbErr> {
  function find_many_to_many (line 178) | async fn find_many_to_many(db: &DbConn) -> Result<(), DbErr> {
  function all_about_select_json (line 227) | async fn all_about_select_json(db: &DbConn) -> Result<(), DbErr> {
  function find_all_json (line 241) | async fn find_all_json(db: &DbConn) -> Result<(), DbErr> {
  function find_together_json (line 257) | async fn find_together_json(db: &DbConn) -> Result<(), DbErr> {
  function count_fruits_by_cake_json (line 274) | async fn count_fruits_by_cake_json(db: &DbConn) -> Result<(), DbErr> {
  function find_all_stream (line 292) | async fn find_all_stream(db: &DbConn) -> Result<(), DbErr> {
  function find_first_page (line 340) | async fn find_first_page(db: &DbConn) -> Result<(), DbErr> {
  function find_num_pages (line 350) | async fn find_num_pages(db: &DbConn) -> Result<(), DbErr> {

FILE: examples/graphql_example/api/src/db.rs
  type Database (line 3) | pub struct Database {
    method new (line 8) | pub async fn new() -> Self {
    method get_connection (line 16) | pub fn get_connection(&self) -> &DatabaseConnection {

FILE: examples/graphql_example/api/src/graphql/mutation/mod.rs
  type Mutation (line 8) | pub struct Mutation(NoteMutation);

FILE: examples/graphql_example/api/src/graphql/mutation/note.rs
  type CreateNoteInput (line 11) | pub struct CreateNoteInput {
    method into_model_with_arbitrary_id (line 17) | fn into_model_with_arbitrary_id(self) -> note::Model {
  type DeleteResult (line 27) | pub struct DeleteResult {
  type NoteMutation (line 33) | pub struct NoteMutation;
    method create_note (line 37) | pub async fn create_note(
    method delete_note (line 48) | pub async fn delete_note(&self, ctx: &Context<'_>, id: i32) -> Result<...

FILE: examples/graphql_example/api/src/graphql/query/mod.rs
  type Query (line 8) | pub struct Query(NoteQuery);

FILE: examples/graphql_example/api/src/graphql/query/note.rs
  type NoteQuery (line 8) | pub struct NoteQuery;
    method get_notes (line 12) | async fn get_notes(&self, ctx: &Context<'_>) -> Result<Vec<note::Model...
    method get_note_by_id (line 21) | async fn get_note_by_id(&self, ctx: &Context<'_>, id: i32) -> Result<O...

FILE: examples/graphql_example/api/src/graphql/schema.rs
  type AppSchema (line 10) | pub type AppSchema = Schema<Query, Mutation, EmptySubscription>;
  function build_schema (line 13) | pub async fn build_schema() -> AppSchema {

FILE: examples/graphql_example/api/src/lib.rs
  function graphql_handler (line 18) | async fn graphql_handler(schema: State<AppSchema>, req: GraphQLRequest) ...
  function graphql_playground (line 22) | async fn graphql_playground() -> impl IntoResponse {
  function main (line 29) | pub async fn main() {

FILE: examples/graphql_example/api/src/service/mutation.rs
  type Mutation (line 4) | pub struct Mutation;
    method create_note (line 7) | pub async fn create_note(db: &DbConn, form_data: note::Model) -> Resul...
    method update_note_by_id (line 21) | pub async fn update_note_by_id(
    method delete_note (line 41) | pub async fn delete_note(db: &DbConn, id: i32) -> Result<DeleteResult,...
    method delete_all_notes (line 51) | pub async fn delete_all_notes(db: &DbConn) -> Result<DeleteResult, DbE...

FILE: examples/graphql_example/api/src/service/query.rs
  type Query (line 4) | pub struct Query;
    method find_note_by_id (line 7) | pub async fn find_note_by_id(db: &DbConn, id: i32) -> Result<Option<no...
    method get_all_notes (line 11) | pub async fn get_all_notes(db: &DbConn) -> Result<Vec<note::Model>, Db...
    method find_notes_in_page (line 16) | pub async fn find_notes_in_page(

FILE: examples/graphql_example/api/tests/crud_tests.rs
  function crud_tests (line 6) | async fn crud_tests() {

FILE: examples/graphql_example/entity/src/note.rs
  type Model (line 8) | pub struct Model {
  type Relation (line 17) | pub enum Relation {}
  method find_by_title (line 22) | pub fn find_by_title(title: &str) -> Select<Entity> {

FILE: examples/graphql_example/migration/src/lib.rs
  type Migrator (line 6) | pub struct Migrator;
  method migrations (line 10) | fn migrations() -> Vec<Box<dyn MigrationTrait>> {

FILE: examples/graphql_example/migration/src/m20220120_000001_create_note_table.rs
  type Migration (line 5) | pub struct Migration;
  method up (line 9) | async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {

FILE: examples/graphql_example/migration/src/m20220120_000002_seed_notes.rs
  type Migration (line 6) | pub struct Migration;
  method up (line 10) | async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
  method down (line 31) | async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {

FILE: examples/graphql_example/migration/src/main.rs
  function main (line 4) | async fn main() {

FILE: examples/graphql_example/src/main.rs
  function main (line 1) | fn main() {

FILE: examples/jsonrpsee_example/api/src/lib.rs
  constant DEFAULT_POSTS_PER_PAGE (line 20) | const DEFAULT_POSTS_PER_PAGE: u64 = 5;
  type PostRpc (line 23) | trait PostRpc {
    method list (line 25) | async fn list(
    method insert (line 32) | async fn insert(&self, p: post::Model) -> RpcResult<i32>;
    method update (line 35) | async fn update(&self, p: post::Model) -> RpcResult<bool>;
    method delete (line 38) | async fn delete(&self, id: i32) -> RpcResult<bool>;
  type PpcImpl (line 41) | struct PpcImpl {
  method list (line 47) | async fn list(
  method insert (line 61) | async fn insert(&self, p: post::Model) -> RpcResult<i32> {
  method update (line 69) | async fn update(&self, p: post::Model) -> RpcResult<bool> {
  method delete (line 75) | async fn delete(&self, id: i32) -> RpcResult<bool> {
  type IntoJsonRpcResult (line 83) | trait IntoJsonRpcResult<T> {
    method internal_call_error (line 84) | fn internal_call_error(self) -> RpcResult<T>;
  function internal_call_error (line 91) | fn internal_call_error(self) -> RpcResult<T> {
  function start (line 99) | async fn start() -> std::io::Result<()> {
  function main (line 141) | pub fn main() {

FILE: examples/jsonrpsee_example/api/src/service/mutation.rs
  type Mutation (line 4) | pub struct Mutation;
    method create_post (line 7) | pub async fn create_post(
    method update_post_by_id (line 20) | pub async fn update_post_by_id(
    method delete_post (line 40) | pub async fn delete_post(db: &DbConn, id: i32) -> Result<DeleteResult,...
    method delete_all_posts (line 50) | pub async fn delete_all_posts(db: &DbConn) -> Result<DeleteResult, DbE...

FILE: examples/jsonrpsee_example/api/src/service/query.rs
  type Query (line 4) | pub struct Query;
    method find_post_by_id (line 7) | pub async fn find_post_by_id(db: &DbConn, id: i32) -> Result<Option<po...
    method find_posts_in_page (line 12) | pub async fn find_posts_in_page(

FILE: examples/jsonrpsee_example/api/tests/crud_tests.rs
  function crud_tests (line 6) | async fn crud_tests() {

FILE: examples/jsonrpsee_example/entity/src/post.rs
  type Model (line 9) | pub struct Model {

FILE: examples/jsonrpsee_example/migration/src/lib.rs
  type Migrator (line 6) | pub struct Migrator;
  method migrations (line 10) | fn migrations() -> Vec<Box<dyn MigrationTrait>> {

FILE: examples/jsonrpsee_example/migration/src/m20220120_000001_create_post_table.rs
  type Migration (line 4) | pub struct Migration;
  method up (line 8) | async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
  method down (line 22) | async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {

FILE: examples/jsonrpsee_example/migration/src/m20220120_000002_seed_posts.rs
  type Migration (line 6) | pub struct Migration;
  method up (line 10) | async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
  method down (line 31) | async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {

FILE: examples/jsonrpsee_example/migration/src/main.rs
  function main (line 4) | async fn main() {

FILE: examples/jsonrpsee_example/src/main.rs
  function main (line 1) | fn main() {

FILE: examples/loco_example/frontend/src/App.jsx
  function App (line 12) | function App() {
  function Layout (line 28) | function Layout() {
  function TodoList (line 42) | function TodoList() {
  function AddTodo (line 107) | function AddTodo() {
  function NoMatch (line 154) | function NoMatch() {

FILE: examples/loco_example/migration/src/lib.rs
  type Migrator (line 7) | pub struct Migrator;
  method migrations (line 11) | fn migrations() -> Vec<Box<dyn MigrationTrait>> {

FILE: examples/loco_example/migration/src/m20231103_114510_notes.rs
  type Migration (line 4) | pub struct Migration;
  method up (line 8) | async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
  method down (line 20) | async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {

FILE: examples/loco_example/migration/src/main.rs
  function main (line 4) | async fn main() {

FILE: examples/loco_example/src/app.rs
  type App (line 19) | pub struct App;
  method app_name (line 22) | fn app_name() -> &'static str {
  method boot (line 26) | async fn boot(
  method routes (line 34) | fn routes(_ctx: &AppContext) -> AppRoutes {
  method connect_workers (line 40) | async fn connect_workers(_ctx: &AppContext, _queue: &Queue) -> Result<()> {
  method register_tasks (line 44) | fn register_tasks(_tasks: &mut Tasks) {}
  method truncate (line 46) | async fn truncate(ctx: &AppContext) -> Result<()> {
  method seed (line 52) | async fn seed(ctx: &AppContext, base: &Path) -> Result<()> {

FILE: examples/loco_example/src/bin/main.rs
  function main (line 6) | async fn main() -> eyre::Result<()> {

FILE: examples/loco_example/src/controllers/notes.rs
  type Params (line 10) | pub struct Params {
    method update (line 16) | fn update(&self, item: &mut ActiveModel) {
  function load_item (line 22) | async fn load_item(ctx: &AppContext, id: i32) -> Result<Model> {
  function list (line 27) | pub async fn list(State(ctx): State<AppContext>) -> Result<Response> {
  function add (line 31) | pub async fn add(State(ctx): State<AppContext>, Json(params): Json<Param...
  function update (line 40) | pub async fn update(
  function remove (line 52) | pub async fn remove(Path(id): Path<i32>, State(ctx): State<AppContext>) ...
  function get_one (line 57) | pub async fn get_one(Path(id): Path<i32>, State(ctx): State<AppContext>)...
  function routes (line 61) | pub fn routes() -> Routes {

FILE: examples/loco_example/src/models/_entities/notes.rs
  type Model (line 9) | pub struct Model {

FILE: examples/loco_example/tests/tasks/seed.rs
  type SeedData (line 22) | pub struct SeedData;
  method task (line 25) | fn task(&self) -> TaskInfo {
  method run (line 31) | async fn run(&self, app_context: &AppContext, vars: &task::Vars) -> Resu...

FILE: examples/loco_seaography/migration/src/lib.rs
  type Migrator (line 9) | pub struct Migrator;
  method migrations (line 13) | fn migrations() -> Vec<Box<dyn MigrationTrait>> {

FILE: examples/loco_seaography/migration/src/m20220101_000001_users.rs
  type Migration (line 4) | pub struct Migration;
  method up (line 8) | async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
  method down (line 26) | async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {

FILE: examples/loco_seaography/migration/src/m20231103_114510_notes.rs
  type Migration (line 4) | pub struct Migration;
  method up (line 8) | async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
  method down (line 20) | async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {

FILE: examples/loco_seaography/migration/src/m20240520_173001_files.rs
  type Migration (line 4) | pub struct Migration;
  method up (line 8) | async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
  method down (line 26) | async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {

FILE: examples/loco_seaography/migration/src/main.rs
  function main (line 4) | async fn main() {

FILE: examples/loco_seaography/src/app.rs
  type App (line 24) | pub struct App;
  method app_name (line 27) | fn app_name() -> &'static str {
  method app_version (line 31) | fn app_version() -> String {
  method boot (line 41) | async fn boot(
  method initializers (line 49) | async fn initializers(_ctx: &AppContext) -> Result<Vec<Box<dyn Initializ...
  method routes (line 56) | fn routes(_ctx: &AppContext) -> AppRoutes {
  method connect_workers (line 66) | async fn connect_workers(ctx: &AppContext, queue: &Queue) -> Result<()> {
  method register_tasks (line 71) | fn register_tasks(tasks: &mut Tasks) {
  method truncate (line 75) | async fn truncate(ctx: &AppContext) -> Result<()> {
  method seed (line 82) | async fn seed(ctx: &AppContext, base: &Path) -> Result<()> {

FILE: examples/loco_seaography/src/bin/main.rs
  function main (line 6) | async fn main() -> eyre::Result<()> {

FILE: examples/loco_seaography/src/controllers/auth.rs
  type VerifyParams (line 14) | pub struct VerifyParams {
  type ForgotParams (line 19) | pub struct ForgotParams {
  type ResetParams (line 24) | pub struct ResetParams {
  function register (line 32) | async fn register(
  function verify (line 69) | async fn verify(
  function forgot (line 91) | async fn forgot(
  function reset (line 113) | async fn reset(State(ctx): State<AppContext>, Json(params): Json<ResetPa...
  function login (line 130) | async fn login(State(ctx): State<AppContext>, Json(params): Json<LoginPa...
  function routes (line 148) | pub fn routes() -> Routes {

FILE: examples/loco_seaography/src/controllers/files.rs
  constant UPLOAD_DIR (line 14) | const UPLOAD_DIR: &str = "./uploads";
  function upload (line 17) | pub async fn upload(
  function list (line 84) | pub async fn list(
  function view (line 100) | pub async fn view(
  function routes (line 119) | pub fn routes() -> Routes {

FILE: examples/loco_seaography/src/controllers/graphql.rs
  function graphql_playground (line 10) | async fn graphql_playground() -> Result<Response> {
  function graphql_handler (line 18) | async fn graphql_handler(
  function routes (line 34) | pub fn routes() -> Routes {

FILE: examples/loco_seaography/src/controllers/notes.rs
  type Params (line 11) | pub struct Params {
    method update (line 17) | fn update(&self, item: &mut ActiveModel) {
  function load_item (line 23) | async fn load_item(ctx: &AppContext, id: i32) -> Result<Model> {
  function list (line 29) | pub async fn list(State(ctx): State<AppContext>) -> Result<Response> {
  function add (line 34) | pub async fn add(State(ctx): State<AppContext>, Json(params): Json<Param...
  function update (line 44) | pub async fn update(
  function remove (line 57) | pub async fn remove(Path(id): Path<i32>, State(ctx): State<AppContext>) ...
  function get_one (line 63) | pub async fn get_one(Path(id): Path<i32>, State(ctx): State<AppContext>)...
  function routes (line 67) | pub fn routes() -> Routes {

FILE: examples/loco_seaography/src/controllers/user.rs
  function current (line 7) | async fn current(auth: auth::JWT, State(ctx): State<AppContext>) -> Resu...
  function routes (line 12) | pub fn routes() -> Routes {

FILE: examples/loco_seaography/src/graphql/query_root.rs
  function schema (line 7) | pub fn schema(

FILE: examples/loco_seaography/src/initializers/graphql.rs
  constant DEPTH (line 7) | const DEPTH: Option<usize> = None;
  constant COMPLEXITY (line 9) | const COMPLEXITY: Option<usize> = None;
  type GraphQLInitializer (line 11) | pub struct GraphQLInitializer;
  method name (line 15) | fn name(&self) -> String {
  method after_routes (line 19) | async fn after_routes(&self, router: AxumRouter, ctx: &AppContext) -> Re...

FILE: examples/loco_seaography/src/mailers/auth.rs
  type AuthMailer (line 15) | pub struct AuthMailer {}
    method send_welcome (line 23) | pub async fn send_welcome(ctx: &AppContext, user: &users::Model) -> Re...
    method forgot_password (line 47) | pub async fn forgot_password(ctx: &AppContext, user: &users::Model) ->...

FILE: examples/loco_seaography/src/models/_entities/files.rs
  type Model (line 9) | pub struct Model {

FILE: examples/loco_seaography/src/models/_entities/notes.rs
  type Model (line 9) | pub struct Model {

FILE: examples/loco_seaography/src/models/_entities/users.rs
  type Model (line 8) | pub struct Model {
  type Relation (line 28) | pub enum Relation {}
  type RelatedEntity (line 31) | pub enum RelatedEntity {}

FILE: examples/loco_seaography/src/models/users.rs
  type LoginParams (line 10) | pub struct LoginParams {
  type RegisterParams (line 16) | pub struct RegisterParams {
  type Validator (line 23) | pub struct Validator {
  method validator (line 31) | fn validator(&self) -> Box<dyn Validate> {
  method before_save (line 41) | async fn before_save<C>(self, _db: &C, insert: bool) -> Result<Self, DbErr>
  method find_by_api_key (line 59) | async fn find_by_api_key(db: &DatabaseConnection, api_key: &str) -> Mode...
  method find_by_claims_key (line 67) | async fn find_by_claims_key(db: &DatabaseConnection, claims_key: &str) -...
  function find_by_email (line 78) | pub async fn find_by_email(db: &DatabaseConnection, email: &str) -> Mode...
  function find_by_verification_token (line 91) | pub async fn find_by_verification_token(
  function find_by_reset_token (line 107) | pub async fn find_by_reset_token(db: &DatabaseConnection, token: &str) -...
  function find_by_pid (line 120) | pub async fn find_by_pid(db: &DatabaseConnection, pid: &str) -> ModelRes...
  function find_by_api_key (line 134) | pub async fn find_by_api_key(db: &DatabaseConnection, api_key: &str) -> ...
  function verify_password (line 148) | pub fn verify_password(&self, password: &str) -> bool {
  function create_with_password (line 158) | pub async fn create_with_password(
  function generate_jwt (line 194) | pub fn generate_jwt(&self, secret: &str, expiration: &u64) -> ModelResul...
  function set_email_verification_sent (line 213) | pub async fn set_email_verification_sent(
  function set_forgot_password_sent (line 234) | pub async fn set_forgot_password_sent(mut self, db: &DatabaseConnection)...
  function verified (line 249) | pub async fn verified(mut self, db: &DatabaseConnection) -> ModelResult<...
  function reset_password (line 262) | pub async fn reset_password(

FILE: examples/loco_seaography/src/tasks/seed.rs
  type SeedData (line 23) | pub struct SeedData;
  method task (line 26) | fn task(&self) -> TaskInfo {
  method run (line 33) | async fn run(&self, app_context: &AppContext, vars: &task::Vars) -> Resu...

FILE: examples/loco_seaography/src/views/auth.rs
  type LoginResponse (line 6) | pub struct LoginResponse {
    method new (line 15) | pub fn new(user: &users::Model, token: &String) -> Self {

FILE: examples/loco_seaography/src/views/user.rs
  type CurrentResponse (line 6) | pub struct CurrentResponse {
    method new (line 14) | pub fn new(user: &users::Model) -> Self {

FILE: examples/loco_seaography/src/workers/downloader.rs
  type DownloadWorker (line 9) | pub struct DownloadWorker {
    method build (line 20) | fn build(ctx: &AppContext) -> Self {
    method perform (line 24) | async fn perform(&self, args: DownloadWorkerArgs) -> Result<()> {
  type DownloadWorkerArgs (line 14) | pub struct DownloadWorkerArgs {

FILE: examples/loco_starter/examples/playground.rs
  function main (line 7) | async fn main() -> eyre::Result<()> {

FILE: examples/loco_starter/migration/src/lib.rs
  type Migrator (line 9) | pub struct Migrator;
  method migrations (line 13) | fn migrations() -> Vec<Box<dyn MigrationTrait>> {

FILE: examples/loco_starter/migration/src/m20220101_000001_users.rs
  type Migration (line 4) | pub struct Migration;
  method up (line 8) | async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
  method down (line 26) | async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {

FILE: examples/loco_starter/migration/src/m20231103_114510_notes.rs
  type Migration (line 4) | pub struct Migration;
  method up (line 8) | async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
  method down (line 20) | async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {

FILE: examples/loco_starter/migration/src/m20240520_173001_files.rs
  type Migration (line 4) | pub struct Migration;
  method up (line 8) | async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
  method down (line 26) | async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {

FILE: examples/loco_starter/migration/src/main.rs
  function main (line 4) | async fn main() {

FILE: examples/loco_starter/src/app.rs
  type App (line 24) | pub struct App;
  method app_name (line 27) | fn app_name() -> &'static str {
  method app_version (line 31) | fn app_version() -> String {
  method boot (line 41) | async fn boot(
  method routes (line 49) | fn routes(_ctx: &AppContext) -> AppRoutes {
  method connect_workers (line 58) | async fn connect_workers(ctx: &AppContext, queue: &Queue) -> Result<()> {
  method register_tasks (line 63) | fn register_tasks(tasks: &mut Tasks) {
  method truncate (line 67) | async fn truncate(ctx: &AppContext) -> Result<()> {
  method seed (line 74) | async fn seed(ctx: &AppContext, base: &Path) -> Result<()> {

FILE: examples/loco_starter/src/bin/main.rs
  function main (line 6) | async fn main() -> eyre::Result<()> {

FILE: examples/loco_starter/src/controllers/auth.rs
  type VerifyParams (line 14) | pub struct VerifyParams {
  type ForgotParams (line 19) | pub struct ForgotParams {
  type ResetParams (line 24) | pub struct ResetParams {
  function register (line 32) | async fn register(
  function verify (line 69) | async fn verify(
  function forgot (line 91) | async fn forgot(
  function reset (line 113) | async fn reset(State(ctx): State<AppContext>, Json(params): Json<ResetPa...
  function login (line 130) | async fn login(State(ctx): State<AppContext>, Json(params): Json<LoginPa...
  function routes (line 148) | pub fn routes() -> Routes {

FILE: examples/loco_starter/src/controllers/files.rs
  constant UPLOAD_DIR (line 14) | const UPLOAD_DIR: &str = "./uploads";
  function upload (line 17) | pub async fn upload(
  function list (line 84) | pub async fn list(
  function view (line 100) | pub async fn view(
  function routes (line 119) | pub fn routes() -> Routes {

FILE: examples/loco_starter/src/controllers/notes.rs
  type Params (line 11) | pub struct Params {
    method update (line 17) | fn update(&self, item: &mut ActiveModel) {
  function load_item (line 23) | async fn load_item(ctx: &AppContext, id: i32) -> Result<Model> {
  function list (line 29) | pub async fn list(State(ctx): State<AppContext>) -> Result<Response> {
  function add (line 34) | pub async fn add(State(ctx): State<AppContext>, Json(params): Json<Param...
  function update (line 44) | pub async fn update(
  function remove (line 57) | pub async fn remove(Path(id): Path<i32>, State(ctx): State<AppContext>) ...
  function get_one (line 63) | pub async fn get_one(Path(id): Path<i32>, State(ctx): State<AppContext>)...
  function routes (line 67) | pub fn routes() -> Routes {

FILE: examples/loco_starter/src/controllers/user.rs
  function current (line 7) | async fn current(auth: auth::JWT, State(ctx): State<AppContext>) -> Resu...
  function routes (line 12) | pub fn routes() -> Routes {

FILE: examples/loco_starter/src/mailers/auth.rs
  type AuthMailer (line 15) | pub struct AuthMailer {}
    method send_welcome (line 23) | pub async fn send_welcome(ctx: &AppContext, user: &users::Model) -> Re...
    method forgot_password (line 47) | pub async fn forgot_password(ctx: &AppContext, user: &users::Model) ->...

FILE: examples/loco_starter/src/models/_entities/files.rs
  type Model (line 6) | pub struct Model {
  type Relation (line 16) | pub enum Relation {
  method to (line 26) | fn to() -> RelationDef {

FILE: examples/loco_starter/src/models/_entities/notes.rs
  type Model (line 9) | pub struct Model {

FILE: examples/loco_starter/src/models/_entities/users.rs
  type Model (line 6) | pub struct Model {
  type Relation (line 27) | pub enum Relation {}

FILE: examples/loco_starter/src/models/users.rs
  type LoginParams (line 10) | pub struct LoginParams {
  type RegisterParams (line 16) | pub struct RegisterParams {
  type Validator (line 23) | pub struct Validator {
  method validator (line 31) | fn validator(&self) -> Box<dyn Validate> {
  method before_save (line 41) | async fn before_save<C>(self, _db: &C, insert: bool) -> Result<Self, DbErr>
  method find_by_api_key (line 59) | async fn find_by_api_key(db: &DatabaseConnection, api_key: &str) -> Mode...
  method find_by_claims_key (line 67) | async fn find_by_claims_key(db: &DatabaseConnection, claims_key: &str) -...
  function find_by_email (line 78) | pub async fn find_by_email(db: &DatabaseConnection, email: &str) -> Mode...
  function find_by_verification_token (line 91) | pub async fn find_by_verification_token(
  function find_by_reset_token (line 107) | pub async fn find_by_reset_token(db: &DatabaseConnection, token: &str) -...
  function find_by_pid (line 120) | pub async fn find_by_pid(db: &DatabaseConnection, pid: &str) -> ModelRes...
  function find_by_api_key (line 134) | pub async fn find_by_api_key(db: &DatabaseConnection, api_key: &str) -> ...
  function verify_password (line 148) | pub fn verify_password(&self, password: &str) -> bool {
  function create_with_password (line 158) | pub async fn create_with_password(
  function generate_jwt (line 194) | pub fn generate_jwt(&self, secret: &str, expiration: &u64) -> ModelResul...
  function set_email_verification_sent (line 213) | pub async fn set_email_verification_sent(
  function set_forgot_password_sent (line 234) | pub async fn set_forgot_password_sent(mut self, db: &DatabaseConnection)...
  function verified (line 249) | pub async fn verified(mut self, db: &DatabaseConnection) -> ModelResult<...
  function reset_password (line 262) | pub async fn reset_password(

FILE: examples/loco_starter/src/tasks/seed.rs
  type SeedData (line 23) | pub struct SeedData;
  method task (line 26) | fn task(&self) -> TaskInfo {
  method run (line 33) | async fn run(&self, app_context: &AppContext, vars: &task::Vars) -> Resu...

FILE: examples/loco_starter/src/views/auth.rs
  type LoginResponse (line 6) | pub struct LoginResponse {
    method new (line 15) | pub fn new(user: &users::Model, token: &String) -> Self {

FILE: examples/loco_starter/src/views/user.rs
  type CurrentResponse (line 6) | pub struct CurrentResponse {
    method new (line 14) | pub fn new(user: &users::Model) -> Self {

FILE: examples/loco_starter/src/workers/downloader.rs
  type DownloadWorker (line 9) | pub struct DownloadWorker {
    method build (line 20) | fn build(ctx: &AppContext) -> Self {
    method perform (line 24) | async fn perform(&self, args: DownloadWorkerArgs) -> Result<()> {
  type DownloadWorkerArgs (line 14) | pub struct DownloadWorkerArgs {

FILE: examples/parquet_example/src/main.rs
  type Model (line 16) | pub struct Model {
  function main (line 30) | async fn main() -> Result<(), Box<dyn std::error::Error>> {

FILE: examples/poem_example/api/src/lib.rs
  constant DEFAULT_POSTS_PER_PAGE (line 18) | const DEFAULT_POSTS_PER_PAGE: u64 = 5;
  type AppState (line 21) | struct AppState {
  type Params (line 27) | struct Params {
  function create (line 33) | async fn create(state: Data<&AppState>, form: Form<post::Model>) -> Resu...
  function list (line 45) | async fn list(state: Data<&AppState>, Query(params): Query<Params>) -> R...
  function new (line 68) | async fn new(state: Data<&AppState>) -> Result<impl IntoResponse> {
  function edit (line 78) | async fn edit(state: Data<&AppState>, Path(id): Path<i32>) -> Result<imp...
  function update (line 97) | async fn update(
  function delete (line 113) | async fn delete(state: Data<&AppState>, Path(id): Path<i32>) -> Result<i...
  function start (line 124) | async fn start() -> std::io::Result<()> {
  function main (line 159) | pub fn main() {

FILE: examples/poem_example/api/src/service/mutation.rs
  type Mutation (line 4) | pub struct Mutation;
    method create_post (line 7) | pub async fn create_post(
    method update_post_by_id (line 20) | pub async fn update_post_by_id(
    method delete_post (line 40) | pub async fn delete_post(db: &DbConn, id: i32) -> Result<DeleteResult,...
    method delete_all_posts (line 50) | pub async fn delete_all_posts(db: &DbConn) -> Result<DeleteResult, DbE...

FILE: examples/poem_example/api/src/service/query.rs
  type Query (line 4) | pub struct Query;
    method find_post_by_id (line 7) | pub async fn find_post_by_id(db: &DbConn, id: i32) -> Result<Option<po...
    method find_posts_in_page (line 12) | pub async fn find_posts_in_page(

FILE: examples/poem_example/api/tests/crud_tests.rs
  function crud_tests (line 6) | async fn crud_tests() {

FILE: examples/poem_example/entity/src/post.rs
  type Model (line 9) | pub struct Model {

FILE: examples/poem_example/migration/src/lib.rs
  type Migrator (line 6) | pub struct Migrator;
  method migrations (line 10) | fn migrations() -> Vec<Box<dyn MigrationTrait>> {

FILE: examples/poem_example/migration/src/m20220120_000001_create_post_table.rs
  type Migration (line 4) | pub struct Migration;
  method up (line 8) | async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
  method down (line 22) | async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {

FILE: examples/poem_example/migration/src/m20220120_000002_seed_posts.rs
  type Migration (line 6) | pub struct Migration;
  method up (line 10) | async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
  method down (line 31) | async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {

FILE: examples/poem_example/migration/src/main.rs
  function main (line 4) | async fn main() {

FILE: examples/poem_example/src/main.rs
  function main (line 1) | fn main() {

FILE: examples/proxy_cloudflare_worker_example/src/entity.rs
  type Model (line 6) | pub struct Model {
  type Relation (line 15) | pub enum Relation {}

FILE: examples/proxy_cloudflare_worker_example/src/lib.rs
  function fetch (line 12) | async fn fetch(req: HttpRequest, env: Env, _ctx: Context) -> Result<Resp...

FILE: examples/proxy_cloudflare_worker_example/src/orm.rs
  type ProxyDb (line 11) | struct ProxyDb {
    method fmt (line 16) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
    method do_query (line 22) | async fn do_query(env: Arc<Env>, statement: Statement) -> Result<Vec<P...
    method do_execute (line 103) | async fn do_execute(env: Arc<Env>, statement: Statement) -> Result<Pro...
  method query (line 171) | async fn query(&self, statement: Statement) -> Result<Vec<ProxyRow>, DbE...
  method execute (line 185) | async fn execute(&self, statement: Statement) -> Result<ProxyExecResult,...
  function init_db (line 200) | pub async fn init_db(env: Arc<Env>) -> Result<DatabaseConnection> {

FILE: examples/proxy_cloudflare_worker_example/src/route.rs
  type CFEnv (line 14) | struct CFEnv {
  function router (line 21) | pub fn router(env: Env) -> Router {
  function handler_get (line 30) | async fn handler_get(
  function handler_generate (line 63) | async fn handler_generate(

FILE: examples/proxy_gluesql_example/src/entity/post.rs
  type Model (line 6) | pub struct Model {
  type Relation (line 15) | pub enum Relation {}

FILE: examples/proxy_gluesql_example/src/main.rs
  type ProxyDb (line 20) | struct ProxyDb {
    method fmt (line 25) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  method query (line 32) | async fn query(&self, statement: Statement) -> Result<Vec<ProxyRow>, DbE...
  method execute (line 68) | async fn execute(&self, statement: Statement) -> Result<ProxyExecResult,...
  function main (line 135) | async fn main() {
  function try_run (line 188) | async fn try_run() {

FILE: examples/quickstart/src/main.rs
  type Model (line 9) | pub struct Model {
  type Model (line 34) | pub struct Model {
  type Model (line 53) | pub struct Model {
  type Model (line 75) | pub struct Model {
  type Model (line 96) | pub struct Model {
  type Model (line 114) | pub struct Model {
  type Model (line 134) | pub struct Model {
  function main (line 154) | async fn main() -> Result<(), sea_orm::DbErr> {

FILE: examples/react_admin/backend/examples/playground.rs
  function main (line 7) | async fn main() -> eyre::Result<()> {

FILE: examples/react_admin/backend/migration/src/lib.rs
  type Migrator (line 9) | pub struct Migrator;
  method migrations (line 13) | fn migrations() -> Vec<Box<dyn MigrationTrait>> {

FILE: examples/react_admin/backend/migration/src/m20220101_000001_users.rs
  type Migration (line 4) | pub struct Migration;
  method up (line 8) | async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
  method down (line 26) | async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {

FILE: examples/react_admin/backend/migration/src/m20231103_114510_notes.rs
  type Migration (line 4) | pub struct Migration;
  method up (line 8) | async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
  method down (line 20) | async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {

FILE: examples/react_admin/backend/migration/src/m20240520_173001_files.rs
  type Migration (line 4) | pub struct Migration;
  method up (line 8) | async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
  method down (line 26) | async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {

FILE: examples/react_admin/backend/migration/src/main.rs
  function main (line 4) | async fn main() {

FILE: examples/react_admin/backend/src/app.rs
  type App (line 24) | pub struct App;
  method app_name (line 27) | fn app_name() -> &'static str {
  method app_version (line 31) | fn app_version() -> String {
  method boot (line 41) | async fn boot(
  method routes (line 49) | fn routes(_ctx: &AppContext) -> AppRoutes {
  method connect_workers (line 59) | async fn connect_workers(ctx: &AppContext, queue: &Queue) -> Result<()> {
  method register_tasks (line 64) | fn register_tasks(tasks: &mut Tasks) {
  method truncate (line 68) | async fn truncate(ctx: &AppContext) -> Result<()> {
  method seed (line 75) | async fn seed(ctx: &AppContext, base: &Path) -> Result<()> {

FILE: examples/react_admin/backend/src/bin/main.rs
  function main (line 6) | async fn main() -> eyre::Result<()> {

FILE: examples/react_admin/backend/src/controllers/auth.rs
  type VerifyParams (line 14) | pub struct VerifyParams {
  type ForgotParams (line 19) | pub struct ForgotParams {
  type ResetParams (line 24) | pub struct ResetParams {
  function register (line 32) | async fn register(
  function verify (line 69) | async fn verify(
  function forgot (line 91) | async fn forgot(
  function reset (line 113) | async fn reset(State(ctx): State<AppContext>, Json(params): Json<ResetPa...
  function login (line 130) | async fn login(State(ctx): State<AppContext>, Json(params): Json<LoginPa...
  function routes (line 148) | pub fn routes() -> Routes {

FILE: examples/react_admin/backend/src/controllers/files.rs
  constant UPLOAD_DIR (line 14) | const UPLOAD_DIR: &str = "./uploads";
  function upload (line 17) | pub async fn upload(
  function list (line 84) | pub async fn list(
  function view (line 100) | pub async fn view(
  function routes (line 119) | pub fn routes() -> Routes {

FILE: examples/react_admin/backend/src/controllers/graphql.rs
  function graphql_playground (line 9) | async fn graphql_playground() -> Result<Response> {
  function graphql_handler (line 17) | async fn graphql_handler(State(ctx): State<AppContext>, req: Request<Bod...
  function routes (line 30) | pub fn routes() -> Routes {

FILE: examples/react_admin/backend/src/controllers/notes.rs
  type Params (line 11) | pub struct Params {
    method update (line 17) | fn update(&self, item: &mut ActiveModel) {
  function load_item (line 23) | async fn load_item(ctx: &AppContext, id: i32) -> Result<Model> {
  function list (line 29) | pub async fn list(State(ctx): State<AppContext>) -> Result<Response> {
  function add (line 34) | pub async fn add(State(ctx): State<AppContext>, Json(params): Json<Param...
  function update (line 44) | pub async fn update(
  function remove (line 57) | pub async fn remove(Path(id): Path<i32>, State(ctx): State<AppContext>) ...
  function get_one (line 63) | pub async fn get_one(Path(id): Path<i32>, State(ctx): State<AppContext>)...
  function routes (line 67) | pub fn routes() -> Routes {

FILE: examples/react_admin/backend/src/controllers/user.rs
  function current (line 7) | async fn current(auth: auth::JWT, State(ctx): State<AppContext>) -> Resu...
  function routes (line 12) | pub fn routes() -> Routes {

FILE: examples/react_admin/backend/src/graphql/query_root.rs
  function schema (line 7) | pub fn schema(

FILE: examples/react_admin/backend/src/mailers/auth.rs
  type AuthMailer (line 15) | pub struct AuthMailer {}
    method send_welcome (line 23) | pub async fn send_welcome(ctx: &AppContext, user: &users::Model) -> Re...
    method forgot_password (line 47) | pub async fn forgot_password(ctx: &AppContext, user: &users::Model) ->...

FILE: examples/react_admin/backend/src/models/_entities/files.rs
  type Model (line 9) | pub struct Model {

FILE: examples/react_admin/backend/src/models/_entities/notes.rs
  type Model (line 9) | pub struct Model {

FILE: examples/react_admin/backend/src/models/_entities/users.rs
  type Model (line 8) | pub struct Model {
  type Relation (line 28) | pub enum Relation {}
  type RelatedEntity (line 31) | pub enum RelatedEntity {}

FILE: examples/react_admin/backend/src/models/users.rs
  type LoginParams (line 10) | pub struct LoginParams {
  type RegisterParams (line 16) | pub struct RegisterParams {
  type Validator (line 23) | pub struct Validator {
  method validator (line 31) | fn validator(&self) -> Box<dyn Validate> {
  method before_save (line 41) | async fn before_save<C>(self, _db: &C, insert: bool) -> Result<Self, DbErr>
  method find_by_api_key (line 59) | async fn find_by_api_key(db: &DatabaseConnection, api_key: &str) -> Mode...
  method find_by_claims_key (line 67) | async fn find_by_claims_key(db: &DatabaseConnection, claims_key: &str) -...
  function find_by_email (line 78) | pub async fn find_by_email(db: &DatabaseConnection, email: &str) -> Mode...
  function find_by_verification_token (line 91) | pub async fn find_by_verification_token(
  function find_by_reset_token (line 107) | pub async fn find_by_reset_token(db: &DatabaseConnection, token: &str) -...
  function find_by_pid (line 120) | pub async fn find_by_pid(db: &DatabaseConnection, pid: &str) -> ModelRes...
  function find_by_api_key (line 134) | pub async fn find_by_api_key(db: &DatabaseConnection, api_key: &str) -> ...
  function verify_password (line 148) | pub fn verify_password(&self, password: &str) -> bool {
  function create_with_password (line 158) | pub async fn create_with_password(
  function generate_jwt (line 194) | pub fn generate_jwt(&self, secret: &str, expiration: &u64) -> ModelResul...
  function set_email_verification_sent (line 213) | pub async fn set_email_verification_sent(
  function set_forgot_password_sent (line 234) | pub async fn set_forgot_password_sent(mut self, db: &DatabaseConnection)...
  function verified (line 249) | pub async fn verified(mut self, db: &DatabaseConnection) -> ModelResult<...
  function reset_password (line 262) | pub async fn reset_password(

FILE: examples/react_admin/backend/src/tasks/seed.rs
  type SeedData (line 23) | pub struct SeedData;
  method task (line 26) | fn task(&self) -> TaskInfo {
  method run (line 33) | async fn run(&self, app_context: &AppContext, vars: &task::Vars) -> Resu...

FILE: examples/react_admin/backend/src/views/auth.rs
  type LoginResponse (line 6) | pub struct LoginResponse {
    method new (line 15) | pub fn new(user: &users::Model, token: &String) -> Self {

FILE: examples/react_admin/backend/src/views/user.rs
  type CurrentResponse (line 6) | pub struct CurrentResponse {
    method new (line 14) | pub fn new(user: &users::Model) -> Self {

FILE: examples/react_admin/backend/src/workers/downloader.rs
  type DownloadWorker (line 9) | pub struct DownloadWorker {
    method build (line 20) | fn build(ctx: &AppContext) -> Self {
    method perform (line 24) | async fn perform(&self, args: DownloadWorkerArgs) -> Result<()> {
  type DownloadWorkerArgs (line 14) | pub struct DownloadWorkerArgs {

FILE: examples/rocket_example/api/src/lib.rs
  constant DEFAULT_POSTS_PER_PAGE (line 24) | const DEFAULT_POSTS_PER_PAGE: u64 = 5;
  function new (line 27) | async fn new() -> Template {
  function create (line 32) | async fn create(conn: Connection<Db>, post_form: Form<post::Model>) -> F...
  function update (line 45) | async fn update(conn: Connection<Db>, id: i32, post_form: Form<post::Mod...
  function list (line 58) | async fn list(
  function edit (line 90) | async fn edit(conn: Connection<Db>, id: i32) -> Template {
  function delete (line 106) | async fn delete(conn: Connection<Db>, id: i32) -> Flash<Redirect> {
  function destroy (line 117) | async fn destroy(conn: Connection<Db>) -> Result<(), rocket::response::D...
  function not_found (line 128) | pub fn not_found(req: &Request<'_>) -> Template {
  function run_migrations (line 137) | async fn run_migrations(rocket: Rocket<Build>) -> fairing::Result {
  function start (line 144) | async fn start() -> Result<(), rocket::Error> {
  function main (line 160) | pub fn main() {

FILE: examples/rocket_example/api/src/pool.rs
  type Db (line 9) | pub struct Db(SeaOrmPool);
  type SeaOrmPool (line 12) | pub struct SeaOrmPool {
    type Error (line 18) | type Error = sea_orm::DbErr;
    type Connection (line 20) | type Connection = sea_orm::DatabaseConnection;
    method init (line 22) | async fn init(figment: &Figment) -> Result<Self, Self::Error> {
    method get (line 38) | async fn get(&self) -> Result<Self::Connection, Self::Error> {
    method close (line 43) | async fn close(&self) {}

FILE: examples/rocket_example/api/src/service/mutation.rs
  type Mutation (line 4) | pub struct Mutation;
    method create_post (line 7) | pub async fn create_post(
    method update_post_by_id (line 20) | pub async fn update_post_by_id(
    method delete_post (line 40) | pub async fn delete_post(db: &DbConn, id: i32) -> Result<DeleteResult,...
    method delete_all_posts (line 50) | pub async fn delete_all_posts(db: &DbConn) -> Result<DeleteResult, DbE...

FILE: examples/rocket_example/api/src/service/query.rs
  type Query (line 4) | pub struct Query;
    method find_post_by_id (line 7) | pub async fn find_post_by_id(db: &DbConn, id: i32) -> Result<Option<po...
    method find_posts_in_page (line 12) | pub async fn find_posts_in_page(

FILE: examples/rocket_example/api/tests/crud_tests.rs
  function crud_tests (line 6) | async fn crud_tests() {

FILE: examples/rocket_example/entity/src/post.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 16) | pub enum Relation {}

FILE: examples/rocket_example/migration/src/lib.rs
  type Migrator (line 6) | pub struct Migrator;
  method migrations (line 10) | fn migrations() -> Vec<Box<dyn MigrationTrait>> {

FILE: examples/rocket_example/migration/src/m20220120_000001_create_post_table.rs
  type Migration (line 4) | pub struct Migration;
  method up (line 8) | async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
  method down (line 22) | async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {

FILE: examples/rocket_example/migration/src/m20220120_000002_seed_posts.rs
  type Migration (line 6) | pub struct Migration;
  method up (line 10) | async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
  method down (line 31) | async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {

FILE: examples/rocket_example/migration/src/main.rs
  function main (line 4) | async fn main() {

FILE: examples/rocket_example/src/main.rs
  function main (line 1) | fn main() {

FILE: examples/rocket_okapi_example/api/src/error.rs
  type Error (line 12) | pub struct Error {
    method fmt (line 77) | fn fmt(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Re...
    method respond_to (line 90) | fn respond_to(self, _: &'r Request<'_>) -> response::Result<'static> {
    method from (line 102) | fn from(err: rocket::serde::json::Error) -> Self {
  method responses (line 23) | fn responses(_generator: &mut OpenApiGenerator) -> Result<Responses, Ope...

FILE: examples/rocket_okapi_example/api/src/lib.rs
  function run_migrations (line 27) | async fn run_migrations(rocket: Rocket<Build>) -> fairing::Result {
  function start (line 34) | async fn start() -> Result<(), rocket::Error> {
  function cors (line 74) | fn cors() -> Cors {
  function custom_openapi_spec (line 92) | fn custom_openapi_spec() -> OpenApi {
  function main (line 130) | pub fn main() {

FILE: examples/rocket_okapi_example/api/src/okapi_example.rs
  constant DEFAULT_POSTS_PER_PAGE (line 19) | const DEFAULT_POSTS_PER_PAGE: u64 = 5;
  function get_routes_and_docs (line 21) | pub fn get_routes_and_docs(settings: &OpenApiSettings) -> (Vec<rocket::R...
  type R (line 25) | pub type R<T> = std::result::Result<rocket::serde::json::Json<T>, error:...
  type DataResult (line 26) | pub type DataResult<'a, T> =
  function create (line 32) | async fn create(conn: Connection<Db>, post_data: DataResult<'_, post::Mo...
  function update (line 52) | async fn update(
  function list (line 78) | async fn list(
  function get_by_id (line 112) | async fn get_by_id(conn: Connection<Db>, id: i32) -> R<Option<post::Mode...
  function delete (line 124) | async fn delete(conn: Connection<Db>, id: i32) -> R<Option<String>> {
  function destroy (line 144) | async fn destroy(conn: Connection<Db>) -> R<Option<String>> {

FILE: examples/rocket_okapi_example/api/src/pool.rs
  type Db (line 11) | pub struct Db(SeaOrmPool);
  type SeaOrmPool (line 14) | pub struct SeaOrmPool {
    type Error (line 20) | type Error = sea_orm::DbErr;
    type Connection (line 22) | type Connection = sea_orm::DatabaseConnection;
    method init (line 24) | async fn init(figment: &Figment) -> Result<Self, Self::Error> {
    method get (line 39) | async fn get(&self) -> Result<Self::Connection, Self::Error> {
    method close (line 44) | async fn close(&self) {}

FILE: examples/rocket_okapi_example/dto/src/dto.rs
  type PostsDto (line 7) | pub struct PostsDto {

FILE: examples/rocket_okapi_example/entity/src/post.rs
  type Model (line 10) | pub struct Model {
  type Relation (line 19) | pub enum Relation {}

FILE: examples/rocket_okapi_example/migration/src/lib.rs
  type Migrator (line 5) | pub struct Migrator;
  method migrations (line 9) | fn migrations() -> Vec<Box<dyn MigrationTrait>> {

FILE: examples/rocket_okapi_example/migration/src/m20220120_000001_create_post_table.rs
  type Migration (line 4) | pub struct Migration;
  method up (line 8) | async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
  method down (line 22) | async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {

FILE: examples/rocket_okapi_example/migration/src/main.rs
  function main (line 4) | async fn main() {

FILE: examples/rocket_okapi_example/service/src/mutation.rs
  type Mutation (line 4) | pub struct Mutation;
    method create_post (line 7) | pub async fn create_post(
    method update_post_by_id (line 20) | pub async fn update_post_by_id(
    method delete_post (line 40) | pub async fn delete_post(db: &DbConn, id: i32) -> Result<DeleteResult,...
    method delete_all_posts (line 50) | pub async fn delete_all_posts(db: &DbConn) -> Result<DeleteResult, DbE...

FILE: examples/rocket_okapi_example/service/src/query.rs
  type Query (line 4) | pub struct Query;
    method find_post_by_id (line 7) | pub async fn find_post_by_id(db: &DbConn, id: i32) -> Result<Option<po...
    method find_posts_in_page (line 12) | pub async fn find_posts_in_page(

FILE: examples/rocket_okapi_example/service/tests/crud_tests.rs
  function main (line 6) | async fn main() {

FILE: examples/rocket_okapi_example/src/main.rs
  function main (line 1) | fn main() {

FILE: examples/salvo_example/api/src/lib.rs
  constant DEFAULT_POSTS_PER_PAGE (line 11) | const DEFAULT_POSTS_PER_PAGE: u64 = 5;
  type Result (line 12) | type Result<T> = std::result::Result<T, StatusError>;
  type AppState (line 15) | struct AppState {
  function create (line 21) | async fn create(req: &mut Request, depot: &mut Depot, res: &mut Response...
  function list (line 41) | async fn list(req: &mut Request, depot: &mut Depot) -> Result<Text<Strin...
  function new (line 70) | async fn new(depot: &mut Depot) -> Result<Text<String>> {
  function edit (line 83) | async fn edit(req: &mut Request, depot: &mut Depot) -> Result<Text<Strin...
  function update (line 106) | async fn update(req: &mut Request, depot: &mut Depot, res: &mut Response...
  function delete (line 126) | async fn delete(req: &mut Request, depot: &mut Depot, res: &mut Response...
  function main (line 142) | pub async fn main() {

FILE: examples/salvo_example/api/src/service/mutation.rs
  type Mutation (line 4) | pub struct Mutation;
    method create_post (line 7) | pub async fn create_post(
    method update_post_by_id (line 20) | pub async fn update_post_by_id(
    method delete_post (line 40) | pub async fn delete_post(db: &DbConn, id: i32) -> Result<DeleteResult,...
    method delete_all_posts (line 50) | pub async fn delete_all_posts(db: &DbConn) -> Result<DeleteResult, DbE...

FILE: examples/salvo_example/api/src/service/query.rs
  type Query (line 4) | pub struct Query;
    method find_post_by_id (line 7) | pub async fn find_post_by_id(db: &DbConn, id: i32) -> Result<Option<po...
    method find_posts_in_page (line 12) | pub async fn find_posts_in_page(

FILE: examples/salvo_example/api/tests/crud_tests.rs
  function crud_tests (line 6) | async fn crud_tests() {

FILE: examples/salvo_example/entity/src/post.rs
  type Model (line 9) | pub struct Model {

FILE: examples/salvo_example/migration/src/lib.rs
  type Migrator (line 6) | pub struct Migrator;
  method migrations (line 10) | fn migrations() -> Vec<Box<dyn MigrationTrait>> {

FILE: examples/salvo_example/migration/src/m20220120_000001_create_post_table.rs
  type Migration (line 4) | pub struct Migration;
  method up (line 8) | async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
  method down (line 22) | async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {

FILE: examples/salvo_example/migration/src/m20220120_000002_seed_posts.rs
  type Migration (line 6) | pub struct Migration;
  method up (line 10) | async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
  method down (line 31) | async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {

FILE: examples/salvo_example/migration/src/main.rs
  function main (line 4) | async fn main() {

FILE: examples/salvo_example/src/main.rs
  function main (line 1) | fn main() {

FILE: examples/seaography_example/graphql/src/entities/baker.rs
  type Model (line 8) | pub struct Model {

FILE: examples/seaography_example/graphql/src/entities/bakery.rs
  type Model (line 8) | pub struct Model {

FILE: examples/seaography_example/graphql/src/entities/cake.rs
  type Model (line 8) | pub struct Model {

FILE: examples/seaography_example/graphql/src/entities/cake_baker.rs
  type Model (line 8) | pub struct Model {

FILE: examples/seaography_example/graphql/src/main.rs
  function graphql_playground (line 32) | async fn graphql_playground() -> impl IntoResponse {
  function graphql_handler (line 36) | async fn graphql_handler(State(schema): State<Schema>, req: GraphQLReque...
  function main (line 42) | async fn main() {

FILE: examples/seaography_example/graphql/src/query_root.rs
  function schema (line 10) | pub fn schema(
  function schema_builder (line 18) | pub fn schema_builder(

FILE: examples/seaography_example/graphql/tests/query_tests.rs
  function schema (line 5) | async fn schema() -> Schema {
  function assert_eq (line 14) | fn assert_eq(a: Response, b: &str) {
  function test_cake_with_bakery (line 22) | async fn test_cake_with_bakery() {
  function test_cake_with_baker (line 76) | async fn test_cake_with_baker() {
  function test_bakery_with_cake_with_baker (line 153) | async fn test_bakery_with_cake_with_baker() {

FILE: examples/seaography_example/migration/src/entity/baker.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 16) | pub enum Relation {
  method to (line 30) | fn to() -> RelationDef {
  method to (line 36) | fn to() -> RelationDef {
  method to (line 42) | fn to() -> RelationDef {
  method via (line 45) | fn via() -> Option<RelationDef> {

FILE: examples/seaography_example/migration/src/entity/bakery.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 16) | pub enum Relation {
  method to (line 24) | fn to() -> RelationDef {
  method to (line 30) | fn to() -> RelationDef {

FILE: examples/seaography_example/migration/src/entity/cake.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 18) | pub enum Relation {
  method to (line 32) | fn to() -> RelationDef {
  method to (line 38) | fn to() -> RelationDef {
  method to (line 44) | fn to() -> RelationDef {
  method via (line 47) | fn via() -> Option<RelationDef> {

FILE: examples/seaography_example/migration/src/entity/cake_baker.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 15) | pub enum Relation {
  method to (line 35) | fn to() -> RelationDef {
  method to (line 41) | fn to() -> RelationDef {

FILE: examples/seaography_example/migration/src/lib.rs
  type Migrator (line 13) | pub struct Migrator;
  method migrations (line 17) | fn migrations() -> Vec<Box<dyn MigrationTrait>> {

FILE: examples/seaography_example/migration/src/m20230101_000001_create_bakery_table.rs
  type Migration (line 4) | pub struct Migration;
  method up (line 8) | async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
  method down (line 21) | async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {

FILE: examples/seaography_example/migration/src/m20230101_000002_create_baker_table.rs
  type Migration (line 4) | pub struct Migration;
  method up (line 8) | async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
  method down (line 30) | async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {

FILE: examples/seaography_example/migration/src/m20230101_000003_create_cake_table.rs
  type Migration (line 4) | pub struct Migration;
  method up (line 8) | async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
  method down (line 31) | async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {

FILE: examples/seaography_example/migration/src/m20230101_000004_create_cake_baker_table.rs
  type Migration (line 4) | pub struct Migration;
  method up (line 8) | async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
  method down (line 42) | async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {

FILE: examples/seaography_example/migration/src/m20230102_000001_seed_bakery_data.rs
  type Migration (line 6) | pub struct Migration;
  method up (line 10) | async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
  method down (line 196) | async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {

FILE: examples/seaography_example/migration/src/main.rs
  function main (line 4) | async fn main() {

FILE: examples/tonic_example/api/build.rs
  function main (line 1) | fn main() {

FILE: examples/tonic_example/api/src/lib.rs
  method into_model (line 23) | fn into_model(self) -> post::Model {
  type MyServer (line 33) | pub struct MyServer {
  method get_posts (line 39) | async fn get_posts(&self, request: Request<PostPerPage>) -> Result<Respo...
  method add_post (line 60) | async fn add_post(&self, request: Request<Post>) -> Result<Response<Post...
  method update_post (line 76) | async fn update_post(&self, request: Request<Post>) -> Result<Response<P...
  method delete_post (line 86) | async fn delete_post(
  method get_post_by_id (line 99) | async fn get_post_by_id(&self, request: Request<PostId>) -> Result<Respo...
  function start (line 119) | async fn start() -> Result<(), Box<dyn std::error::Error>> {
  function main (line 137) | pub fn main() {

FILE: examples/tonic_example/api/src/service/mutation.rs
  type Mutation (line 4) | pub struct Mutation;
    method create_post (line 7) | pub async fn create_post(
    method update_post_by_id (line 20) | pub async fn update_post_by_id(
    method delete_post (line 40) | pub async fn delete_post(db: &DbConn, id: i32) -> Result<DeleteResult,...
    method delete_all_posts (line 50) | pub async fn delete_all_posts(db: &DbConn) -> Result<DeleteResult, DbE...

FILE: examples/tonic_example/api/src/service/query.rs
  type Query (line 4) | pub struct Query;
    method find_post_by_id (line 7) | pub async fn find_post_by_id(db: &DbConn, id: i32) -> Result<Option<po...
    method find_posts_in_page (line 12) | pub async fn find_posts_in_page(

FILE: examples/tonic_example/api/tests/crud_tests.rs
  function crud_tests (line 6) | async fn crud_tests() {

FILE: examples/tonic_example/entity/src/post.rs
  type Model (line 9) | pub struct Model {

FILE: examples/tonic_example/migration/src/lib.rs
  type Migrator (line 6) | pub struct Migrator;
  method migrations (line 10) | fn migrations() -> Vec<Box<dyn MigrationTrait>> {

FILE: examples/tonic_example/migration/src/m20220120_000001_create_post_table.rs
  type Migration (line 4) | pub struct Migration;
  method up (line 8) | async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
  method down (line 22) | async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {

FILE: examples/tonic_example/migration/src/m20220120_000002_seed_posts.rs
  type Migration (line 6) | pub struct Migration;
  method up (line 10) | async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
  method down (line 31) | async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {

FILE: examples/tonic_example/migration/src/main.rs
  function main (line 4) | async fn main() {

FILE: examples/tonic_example/src/client.rs
  function main (line 7) | async fn main() -> Result<(), Box<dyn std::error::Error>> {

FILE: examples/tonic_example/src/server.rs
  function main (line 1) | fn main() {

FILE: issues/1143/src/entity/sea_orm_active_enums.rs
  type Category (line 5) | pub enum Category {
  type Color (line 14) | pub enum Color {
  type Tea (line 23) | pub enum Tea {

FILE: issues/1143/src/main.rs
  function main (line 4) | async fn main() {}

FILE: issues/1278/src/entity.rs
  type Model (line 5) | pub struct Model {
  type Relation (line 12) | pub enum Relation {}

FILE: issues/1278/src/main.rs
  type QueryAs (line 8) | enum QueryAs {
  type PoolResult (line 13) | struct PoolResult {
  function main (line 18) | async fn main() {

FILE: issues/1357/src/entity.rs
  type Model (line 5) | pub struct Model {
  type Relation (line 12) | pub enum Relation {}

FILE: issues/1357/src/main.rs
  function main (line 9) | async fn main() -> Result<()> {

FILE: issues/1473/src/main.rs
  type Character (line 4) | enum Character {
  type Glyph (line 10) | struct Glyph;
  function main (line 12) | fn main() {

FILE: issues/1582/schema.sql
  type public (line 4) | CREATE TABLE IF NOT EXISTS public.table_1 (
  type public (line 9) | CREATE TABLE IF NOT EXISTS public.table_2 (
  type public (line 32) | CREATE TABLE IF NOT EXISTS public.table_3 (

FILE: issues/1599/entity/src/cake.rs
  type Model (line 5) | pub struct Model {
  type Relation (line 13) | pub enum Relation {
  method to (line 30) | fn to() -> RelationDef {
  method to (line 36) | fn to() -> RelationDef {
  method via (line 40) | fn via() -> Option<RelationDef> {
  type RelatedEntity (line 46) | pub enum RelatedEntity {

FILE: issues/1599/entity/src/cake_filling.rs
  type Entity (line 4) | pub struct Entity;
  method table_name (line 7) | fn table_name(&self) -> &'static str {
  type Model (line 13) | pub struct Model {
  type Column (line 19) | pub enum Column {
  type PrimaryKey (line 25) | pub enum PrimaryKey {
  type ValueType (line 31) | type ValueType = (i32, i32);
  method auto_increment (line 33) | fn auto_increment() -> bool {
  type Relation (line 39) | pub enum Relation {
  type EntityName (line 45) | type EntityName = Entity;
  method def (line 47) | fn def(&self) -> ColumnDef {
  method def (line 56) | fn def(&self) -> RelationDef {

FILE: issues/1599/entity/src/filling.rs
  type Entity (line 5) | pub struct Entity;
    method to (line 71) | fn to() -> RelationDef {
    method via (line 75) | fn via() -> Option<RelationDef> {
  type Model (line 8) | pub struct Model {
  type Column (line 18) | pub enum Column {
  method as_str (line 26) | fn as_str(&self) -> &str {
  type PrimaryKey (line 37) | pub enum PrimaryKey {
  type ValueType (line 42) | type ValueType = i32;
  method auto_increment (line 44) | fn auto_increment() -> bool {
  type Relation (line 50) | pub enum Relation {}
  type EntityName (line 53) | type EntityName = Entity;
  method def (line 55) | fn def(&self) -> ColumnDef {
  method def (line 65) | fn def(&self) -> RelationDef {

FILE: issues/1599/entity/src/fruit.rs
  type Model (line 5) | pub struct Model {
  type Relation (line 14) | pub enum Relation {
  method to (line 24) | fn to() -> RelationDef {

FILE: issues/1599/graphql/src/main.rs
  type OrmDataloader (line 14) | pub struct OrmDataloader {
  function graphql_playground (line 33) | async fn graphql_playground() -> impl IntoResponse {
  function main (line 38) | async fn main() {

FILE: issues/1599/graphql/src/query_root.rs
  function schema (line 9) | pub fn schema(

FILE: issues/1790/insert_test.rs
  function insert_do_nothing_postgres (line 4) | fn insert_do_nothing_postgres() {
  function insert_do_nothing_mysql (line 23) | fn insert_do_nothing_mysql() {
  function insert_do_nothing (line 42) | fn insert_do_nothing() {

FILE: issues/249/app/src/main.rs
  function main (line 5) | fn main() {

FILE: issues/249/service/src/lib.rs
  function clone_a_model (line 3) | pub fn clone_a_model<M>(model: &M) -> M
  function test (line 14) | fn test() {

FILE: issues/262/src/cake.rs
  type Model (line 5) | pub struct Model {
  type Relation (line 13) | pub enum Relation {}
  function test_case_transform_1 (line 22) | fn test_case_transform_1() {

FILE: issues/262/src/main.rs
  function main (line 5) | pub async fn main() {

FILE: issues/319/src/main.rs
  function main (line 5) | pub async fn main() {

FILE: issues/319/src/material.rs
  type Model (line 6) | pub struct Model {
  type Relation (line 18) | pub enum Relation {}

FILE: issues/324/src/main.rs
  function main (line 3) | pub fn main() {}

FILE: issues/324/src/model.rs
  type Model (line 5) | pub struct Model {
  type Relation (line 12) | pub enum Relation {}
  type AccountId (line 17) | pub struct AccountId(Uuid);
  method from (line 20) | fn from(account_id: AccountId) -> Self {

FILE: issues/352/src/binary_primary_key.rs
  type Model (line 5) | pub struct Model {
  type Relation (line 16) | pub enum Relation {}

FILE: issues/352/src/main.rs
  function main (line 8) | pub fn main() {}

FILE: issues/352/src/quaternary_primary_key.rs
  type Model (line 5) | pub struct Model {
  type Relation (line 20) | pub enum Relation {}

FILE: issues/352/src/quinary_primary_key.rs
  type Model (line 5) | pub struct Model {
  type Relation (line 22) | pub enum Relation {}

FILE: issues/352/src/senary_primary_key.rs
  type Model (line 5) | pub struct Model {
  type Relation (line 24) | pub enum Relation {}

FILE: issues/352/src/ternary_primary_key.rs
  type Model (line 5) | pub struct Model {
  type Relation (line 18) | pub enum Relation {}

FILE: issues/352/src/unary_primary_key.rs
  type Model (line 5) | pub struct Model {
  type Relation (line 14) | pub enum Relation {}

FILE: issues/356/src/main.rs
  function main (line 3) | pub fn main() {}

FILE: issues/356/src/model.rs
  type Model (line 5) | pub struct Model {
  type Relation (line 14) | pub enum Relation {}
  function test_columns_1 (line 24) | fn test_columns_1() {

FILE: issues/400/src/main.rs
  function main (line 3) | pub fn main() {}

FILE: issues/400/src/model.rs
  type Model (line 6) | pub struct Model {
  type Relation (line 13) | pub enum Relation {}
  type AccountId (line 18) | pub struct AccountId<T>(Uuid, PhantomData<T>);
  function new (line 21) | pub fn new(id: Uuid) -> Self {
  method from (line 27) | fn from(account_id: AccountId<T>) -> Self {
  function try_from_u64 (line 33) | fn try_from_u64(_n: u64) -> Result<Self, sea_orm::DbErr> {
  function from (line 39) | fn from(source: AccountId<T>) -> Self {
  function try_get (line 45) | fn try_get(
  function null (line 56) | fn null() -> sea_orm::Value {
  function try_from (line 62) | fn try_from(v: sea_orm::Value) -> Result<Self, sea_orm::sea_query::Value...
  function type_name (line 69) | fn type_name() -> String {
  function array_type (line 73) | fn array_type() -> sea_orm::sea_query::ArrayType {
  function column_type (line 77) | fn column_type() -> sea_orm::sea_query::ColumnType {

FILE: issues/471/src/main.rs
  function main (line 10) | async fn main() -> anyhow::Result<()> {

FILE: issues/471/src/post.rs
  type Model (line 8) | pub struct Model {
  type Relation (line 18) | pub enum Relation {}

FILE: issues/471/src/setup.rs
  function create_table (line 4) | async fn create_table(db: &DbConn, stmt: &TableCreateStatement) -> Resul...
  function create_post_table (line 9) | pub async fn create_post_table(db: &DbConn) -> Result<ExecResult, DbErr> {

FILE: issues/630/create_underscores_table.sql
  type underscores (line 1) | CREATE TABLE underscores (

FILE: issues/630/src/entity/underscores.rs
  type Model (line 8) | pub struct Model {
  type Relation (line 19) | pub enum Relation {}
  function column_names (line 29) | fn column_names() {

FILE: issues/630/src/entity/underscores_workaround.rs
  type Model (line 8) | pub struct Model {
  type Relation (line 24) | pub enum Relation {}
  function column_names (line 34) | fn column_names() {

FILE: issues/630/src/main.rs
  function main (line 10) | async fn main() {

FILE: issues/693/src/container.rs
  type Model (line 13) | pub struct Model {
  type Relation (line 19) | pub enum Relation {
  method to (line 25) | fn to() -> RelationDef {

FILE: issues/693/src/content.rs
  type Model (line 13) | pub struct Model {
  type Relation (line 20) | pub enum Relation {
  method to (line 30) | fn to() -> RelationDef {

FILE: issues/693/src/main.rs
  function main (line 8) | fn main() {

FILE: issues/86/src/cake.rs
  type Model (line 5) | pub struct Model {
  type Relation (line 12) | pub enum Relation {}

FILE: issues/86/src/main.rs
  function main (line 5) | pub async fn main() {

FILE: issues/892/src/main.rs
  function main (line 5) | async fn main() -> Result<(), DbErr> {

FILE: sea-orm-arrow/src/lib.rs
  type ArrowError (line 13) | pub enum ArrowError {
  function type_err (line 31) | fn type_err(expected: &'static str, col_type: &'static str, array: &dyn ...
  function arrow_array_to_value (line 49) | pub fn arrow_array_to_value(
  function arrow_array_to_value_alt (line 182) | pub fn arrow_array_to_value_alt(
  function is_datetime_column (line 202) | pub fn is_datetime_column(col_type: &ColumnType) -> bool {
  function arrow_to_bytes (line 217) | fn arrow_to_bytes(array: &dyn Array, row: usize) -> Result<Value, ArrowE...
  function arrow_to_decimal (line 240) | fn arrow_to_decimal(array: &dyn Array, row: usize) -> Result<Value, Arro...
  function decimal64_to_value (line 270) | fn decimal64_to_value(value: i64, _precision: u8, scale: i8) -> Result<V...
  function decimal64_to_value (line 289) | fn decimal64_to_value(_value: i64, _precision: u8, _scale: i8) -> Result...
  function decimal64_to_bigdecimal (line 300) | fn decimal64_to_bigdecimal(value: i64, scale: i8) -> Result<Value, Arrow...
  function decimal128_to_value (line 309) | fn decimal128_to_value(value: i128, precision: u8, scale: i8) -> Result<...
  function decimal128_to_value (line 328) | fn decimal128_to_value(_value: i128, _precision: u8, _scale: i8) -> Resu...
  function decimal128_to_bigdecimal (line 339) | fn decimal128_to_bigdecimal(value: i128, scale: i8) -> Result<Value, Arr...
  function decimal256_to_value (line 347) | fn decimal256_to_value(_value: i256, _precision: u8, _scale: i8) -> Resu...
  function arrow_to_chrono_date (line 397) | fn arrow_to_chrono_date(array: &dyn Array, row: usize) -> Result<Value, ...
  function arrow_to_chrono_time (line 419) | fn arrow_to_chrono_time(array: &dyn Array, row: usize) -> Result<Value, ...
  function arrow_timestamp_to_utc (line 458) | fn arrow_timestamp_to_utc(
  function arrow_to_chrono_datetime (line 489) | fn arrow_to_chrono_datetime(array: &dyn Array, row: usize) -> Result<Val...
  function arrow_to_chrono_datetime_utc (line 495) | fn arrow_to_chrono_datetime_utc(array: &dyn Array, row: usize) -> Result...
  function arrow_to_time_date (line 505) | fn arrow_to_time_date(array: &dyn Array, row: usize) -> Result<Value, Ar...
  function arrow_to_time_time (line 527) | fn arrow_to_time_time(array: &dyn Array, row: usize) -> Result<Value, Ar...
  function arrow_timestamp_to_offset_dt (line 587) | fn arrow_timestamp_to_offset_dt(
  function arrow_to_time_datetime (line 619) | fn arrow_to_time_datetime(array: &dyn Array, row: usize) -> Result<Value...
  function arrow_to_time_datetime_tz (line 627) | fn arrow_to_time_datetime_tz(array: &dyn Array, row: usize) -> Result<Va...
  function null_value_for_type (line 636) | fn null_value_for_type(col_type: &ColumnType) -> Value {
  function null_value_for_type_time (line 677) | fn null_value_for_type_time(col_type: &ColumnType) -> Value {
  function values_to_arrow_array (line 695) | pub fn values_to_arrow_array(
  function option_values_to_arrow_array (line 977) | pub fn option_values_to_arrow_array(
  function extract_date32_option (line 1268) | fn extract_date32_option(v: &Option<Value>) -> Option<i32> {
  function extract_date32 (line 1272) | fn extract_date32(v: &Value) -> Option<i32> {
  function extract_time32_option (line 1290) | fn extract_time32_option(v: &Option<Value>, unit: &arrow::datatypes::Tim...
  function extract_time32 (line 1294) | fn extract_time32(v: &Value, unit: &arrow::datatypes::TimeUnit) -> Optio...
  function extract_time64_option (line 1327) | fn extract_time64_option(v: &Option<Value>, unit: &arrow::datatypes::Tim...
  function extract_time64 (line 1331) | fn extract_time64(v: &Value, unit: &arrow::datatypes::TimeUnit) -> Optio...
  function extract_timestamp_option (line 1364) | fn extract_timestamp_option(v: &Option<Value>, unit: &arrow::datatypes::...
  function extract_timestamp (line 1368) | fn extract_timestamp(v: &Value, unit: &arrow::datatypes::TimeUnit) -> Op...
  function offset_dt_to_timestamp (line 1407) | fn offset_dt_to_timestamp(
  function extract_decimal64_option (line 1424) | fn extract_decimal64_option(v: &Option<Value>, target_scale: i8) -> Opti...
  function extract_decimal64 (line 1428) | fn extract_decimal64(v: &Value, target_scale: i8) -> Option<i64> {
  function bigdecimal_to_i64 (line 1450) | fn bigdecimal_to_i64(
  function extract_decimal128_option (line 1461) | fn extract_decimal128_option(v: &Option<Value>, target_scale: i8) -> Opt...
  function extract_decimal128 (line 1465) | fn extract_decimal128(v: &Value, target_scale: i8) -> Option<i128> {
  function bigdecimal_to_i128 (line 1486) | fn bigdecimal_to_i128(
  function extract_decimal256_option (line 1497) | fn extract_decimal256_option(v: &Option<Value>, target_scale: i8) -> Opt...
  function extract_decimal256 (line 1501) | fn extract_decimal256(v: &Value, target_scale: i8) -> Option<i256> {
  function bigdecimal_to_i256 (line 1523) | fn bigdecimal_to_i256(
  function bigint_to_i256 (line 1533) | fn bigint_to_i256(bi: &sea_query::prelude::bigdecimal::num_bigint::BigIn...

FILE: sea-orm-cli/src/bin/main.rs
  function main (line 17) | async fn main() {

FILE: sea-orm-cli/src/cli.rs
  type Cli (line 46) | pub struct Cli {
  type Commands (line 56) | pub enum Commands {
  type MigrateSubcommands (line 109) | pub enum MigrateSubcommands {
  type GenerateSubcommands (line 167) | pub enum GenerateSubcommands {
  type DateTimeCrate (line 398) | pub enum DateTimeCrate {
  type BigIntegerType (line 405) | pub enum BigIntegerType {
  type BannerVersion (line 412) | pub enum BannerVersion {
  function is_deprecated_preserve_user_modifications_flag (line 420) | fn is_deprecated_preserve_user_modifications_flag(arg: &OsStr) -> bool {
  function main (line 428) | pub async fn main() {

FILE: sea-orm-cli/src/commands/generate.rs
  function run_generate_command (line 12) | pub async fn run_generate_command(
  function sqlx_connect (line 329) | async fn sqlx_connect<DB>(
  method from (line 359) | fn from(date_time_crate: DateTimeCrate) -> CodegenDateTimeCrate {
  method from (line 368) | fn from(date_time_crate: BigIntegerType) -> CodegenBigIntegerType {
  method from (line 377) | fn from(banner_version: BannerVersion) -> CodegenBannerVersion {
  function test_generate_entity_no_protocol (line 398) | fn test_generate_entity_no_protocol() {
  function test_generate_entity_no_database_section (line 419) | fn test_generate_entity_no_database_section() {
  function test_generate_entity_no_database_path (line 440) | fn test_generate_entity_no_database_path() {
  function test_generate_entity_no_host (line 459) | fn test_generate_entity_no_host() {

FILE: sea-orm-cli/src/commands/migrate.rs
  function run_migrate_command (line 16) | pub fn run_migrate_command(
  function run_migrate_init (line 82) | pub fn run_migrate_init(migration_dir: &str) -> Result<(), Box<dyn Error...
  function run_migrate_generate (line 129) | pub fn run_migrate_generate(
  function get_full_migration_dir (line 170) | fn get_full_migration_dir(migration_dir: &str) -> PathBuf {
  function create_new_migration (line 179) | fn create_new_migration(migration_name: &str, migration_dir: &str) -> Re...
  function get_migrator_filepath (line 203) | fn get_migrator_filepath(migration_dir: &str) -> PathBuf {
  function update_migrator (line 212) | fn update_migrator(migration_name: &str, migration_dir: &str) -> Result<...
  type MigrationCommandError (line 259) | enum MigrationCommandError {
  method fmt (line 264) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  function test_create_new_migration (line 280) | fn test_create_new_migration() {
  function test_update_migrator (line 298) | fn test_update_migrator() {

FILE: sea-orm-cli/src/commands/mod.rs
  function handle_error (line 11) | pub fn handle_error<E>(error: E)

FILE: sea-orm-cli/template/migration/src/lib.rs
  type Migrator (line 5) | pub struct Migrator;
  method migrations (line 9) | fn migrations() -> Vec<Box<dyn MigrationTrait>> {

FILE: sea-orm-cli/template/migration/src/m20220101_000001_create_table.rs
  type Migration (line 4) | pub struct Migration;
  method up (line 8) | async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
  method down (line 25) | async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {

FILE: sea-orm-cli/template/migration/src/main.rs
  function main (line 4) | async fn main() {

FILE: sea-orm-codegen/src/entity/active_enum.rs
  type ActiveEnum (line 9) | pub struct ActiveEnum {
    method impl_active_enum (line 15) | pub fn impl_active_enum(
  function test_enum_variant_starts_with_empty_string (line 109) | fn test_enum_variant_starts_with_empty_string() {
  function test_enum_variant_starts_with_number (line 139) | fn test_enum_variant_starts_with_number() {
  function test_enum_extra_derives (line 204) | fn test_enum_extra_derives() {
  function test_enum_extra_attributes (line 241) | fn test_enum_extra_attributes() {
  function test_enum_variant_utf8_encode (line 312) | fn test_enum_variant_utf8_encode() {

FILE: sea-orm-codegen/src/entity/base_entity.rs
  type Entity (line 12) | pub struct Entity {
    method get_table_name_snake_case (line 21) | pub fn get_table_name_snake_case(&self) -> String {
    method get_table_name_camel_case (line 25) | pub fn get_table_name_camel_case(&self) -> String {
    method get_table_name_snake_case_ident (line 29) | pub fn get_table_name_snake_case_ident(&self) -> Ident {
    method get_table_name_camel_case_ident (line 33) | pub fn get_table_name_camel_case_ident(&self) -> Ident {
    method get_column_names_snake_case (line 37) | pub fn get_column_names_snake_case(&self) -> Vec<Ident> {
    method get_column_names_camel_case (line 44) | pub fn get_column_names_camel_case(&self) -> Vec<Ident> {
    method get_column_rs_types (line 51) | pub fn get_column_rs_types(&self, opt: &ColumnOption) -> Vec<TokenStre...
    method get_column_defs (line 59) | pub fn get_column_defs(&self) -> Vec<TokenStream> {
    method get_primary_key_names_snake_case (line 67) | pub fn get_primary_key_names_snake_case(&self) -> Vec<Ident> {
    method get_primary_key_names_camel_case (line 74) | pub fn get_primary_key_names_camel_case(&self) -> Vec<Ident> {
    method get_relation_module_name (line 81) | pub fn get_relation_module_name(&self) -> Vec<Option<Ident>> {
    method get_relation_enum_name (line 88) | pub fn get_relation_enum_name(&self) -> Vec<Ident> {
    method get_related_entity_enum_name (line 96) | pub fn get_related_entity_enum_name(&self) -> Vec<Ident> {
    method get_relation_defs (line 115) | pub fn get_relation_defs(&self) -> Vec<TokenStream> {
    method get_relation_attrs (line 119) | pub fn get_relation_attrs(&self) -> Vec<TokenStream> {
    method get_related_entity_modules (line 124) | pub fn get_related_entity_modules(&self) -> Vec<Ident> {
    method get_related_entity_attrs (line 154) | pub fn get_related_entity_attrs(&self) -> Vec<TokenStream> {
    method get_primary_key_auto_increment (line 211) | pub fn get_primary_key_auto_increment(&self) -> Ident {
    method get_primary_key_rs_type (line 216) | pub fn get_primary_key_rs_type(&self, opt: &ColumnOption) -> TokenStre...
    method get_conjunct_relations_via_snake_case (line 241) | pub fn get_conjunct_relations_via_snake_case(&self) -> Vec<Ident> {
    method get_conjunct_relations_to_snake_case (line 248) | pub fn get_conjunct_relations_to_snake_case(&self) -> Vec<Ident> {
    method get_conjunct_relations_to_upper_camel_case (line 255) | pub fn get_conjunct_relations_to_upper_camel_case(&self) -> Vec<Ident> {
    method get_eq_needed (line 262) | pub fn get_eq_needed(&self) -> TokenStream {
    method get_column_serde_attributes (line 279) | pub fn get_column_serde_attributes(
  function setup (line 305) | fn setup() -> Entity {
  function test_get_table_name_snake_case (line 358) | fn test_get_table_name_snake_case() {
  function test_get_table_name_camel_case (line 368) | fn test_get_table_name_camel_case() {
  function test_get_table_name_snake_case_ident (line 375) | fn test_get_table_name_snake_case_ident() {
  function test_get_table_name_camel_case_ident (line 385) | fn test_get_table_name_camel_case_ident() {
  function test_get_column_names_snake_case (line 395) | fn test_get_column_names_snake_case() {
  function test_get_column_names_camel_case (line 404) | fn test_get_column_names_camel_case() {
  function test_get_column_rs_types (line 413) | fn test_get_column_rs_types() {
  function test_get_column_defs (line 426) | fn test_get_column_defs() {
  function test_get_primary_key_names_snake_case (line 435) | fn test_get_primary_key_names_snake_case() {
  function test_get_primary_key_names_camel_case (line 448) | fn test_get_primary_key_names_camel_case() {
  function test_get_relation_module_name (line 461) | fn test_get_relation_module_name() {
  function test_get_relation_enum_name (line 470) | fn test_get_relation_enum_name() {
  function test_get_relation_defs (line 479) | fn test_get_relation_defs() {
  function test_get_relation_attrs (line 488) | fn test_get_relation_attrs() {
  function test_get_primary_key_auto_increment (line 500) | fn test_get_primary_key_auto_increment() {
  function test_get_primary_key_rs_type (line 516) | fn test_get_primary_key_rs_type() {
  function test_get_conjunct_relations_via_snake_case (line 527) | fn test_get_conjunct_relations_via_snake_case() {
  function test_get_conjunct_relations_to_snake_case (line 540) | fn test_get_conjunct_relations_to_snake_case() {
  function test_get_conjunct_relations_to_upper_camel_case (line 553) | fn test_get_conjunct_relations_to_upper_camel_case() {
  function test_get_eq_needed (line 566) | fn test_get_eq_needed() {

FILE: sea-orm-codegen/src/entity/column.rs
  type Column (line 9) | pub struct Column {
    method get_name_snake_case (line 25) | pub fn get_name_snake_case(&self) -> Ident {
    method get_name_camel_case (line 29) | pub fn get_name_camel_case(&self) -> Ident {
    method is_snake_case_name (line 33) | pub fn is_snake_case_name(&self) -> bool {
    method get_rs_type (line 37) | pub fn get_rs_type(&self, opt: &ColumnOption) -> TokenStream {
    method get_col_type_attrs (line 108) | pub fn get_col_type_attrs(&self) -> Option<TokenStream> {
    method get_def (line 133) | pub fn get_def(&self) -> TokenStream {
    method get_info (line 227) | pub fn get_info(&self, opt: &ColumnOption) -> String {
    method col_info (line 240) | fn col_info(&self) -> String {
    method get_serde_attribute (line 254) | pub fn get_serde_attribute(
    method get_inner_col_type (line 273) | pub fn get_inner_col_type(&self) -> &ColumnType {
    method from (line 282) | fn from(col_def: ColumnDef) -> Self {
    method from (line 288) | fn from(col_def: &ColumnDef) -> Self {
  type ColumnOption (line 19) | pub struct ColumnOption {
  function date_time_crate_chrono (line 318) | fn date_time_crate_chrono() -> ColumnOption {
  function date_time_crate_time (line 325) | fn date_time_crate_time() -> ColumnOption {
  function setup (line 332) | fn setup() -> Vec<Column> {
  function test_get_name_snake_case (line 376) | fn test_get_name_snake_case() {
  function test_get_name_camel_case (line 409) | fn test_get_name_camel_case() {
  function test_get_rs_type_with_chrono (line 442) | fn test_get_rs_type_with_chrono() {
  function test_get_rs_type_with_time (line 487) | fn test_get_rs_type_with_time() {
  function test_get_def (line 532) | fn test_get_def() {
  function test_get_info (line 576) | fn test_get_info() {
  function test_from_column_def (line 718) | fn test_from_column_def() {

FILE: sea-orm-codegen/src/entity/conjunct_relation.rs
  type ConjunctRelation (line 8) | pub struct ConjunctRelation {
    method get_via_snake_case (line 14) | pub fn get_via_snake_case(&self) -> Ident {
    method get_to_snake_case (line 18) | pub fn get_to_snake_case(&self) -> Ident {
    method get_to_upper_camel_case (line 22) | pub fn get_to_upper_camel_case(&self) -> Ident {
  function setup (line 31) | fn setup() -> Vec<ConjunctRelation> {
  function test_get_via_snake_case (line 45) | fn test_get_via_snake_case() {
  function test_get_to_snake_case (line 54) | fn test_get_to_snake_case() {
  function test_get_to_upper_camel_case (line 63) | fn test_get_to_upper_camel_case() {

FILE: sea-orm-codegen/src/entity/primary_key.rs
  type PrimaryKey (line 6) | pub struct PrimaryKey {
    method get_name_snake_case (line 11) | pub fn get_name_snake_case(&self) -> Ident {
    method get_name_camel_case (line 15) | pub fn get_name_camel_case(&self) -> Ident {
  function setup (line 24) | fn setup() -> PrimaryKey {
  function test_get_name_snake_case (line 31) | fn test_get_name_snake_case() {
  function test_get_name_camel_case (line 38) | fn test_get_name_camel_case() {

FILE: sea-orm-codegen/src/entity/relation.rs
  type RelationType (line 10) | pub enum RelationType {
  type Relation (line 17) | pub struct Relation {
    method get_enum_name (line 30) | pub fn get_enum_name(&self) -> Ident {
    method get_module_name (line 43) | pub fn get_module_name(&self) -> Option<Ident> {
    method get_def (line 54) | pub fn get_def(&self) -> TokenStream {
    method get_attrs (line 96) | pub fn get_attrs(&self) -> TokenStream {
    method get_rel_type (line 154) | pub fn get_rel_type(&self) -> Ident {
    method get_column_camel_case (line 162) | pub fn get_column_camel_case(&self) -> Vec<Ident> {
    method get_ref_column_camel_case (line 169) | pub fn get_ref_column_camel_case(&self) -> Vec<Ident> {
    method get_foreign_key_action (line 176) | pub fn get_foreign_key_action(action: &ForeignKeyAction) -> String {
    method get_src_ref_columns (line 180) | pub fn get_src_ref_columns<F1, F2, F3, T, I>(
    method from (line 212) | fn from(tbl_fk: &TableForeignKey) -> Self {
  function setup (line 242) | fn setup() -> Vec<Relation> {
  function test_get_module_name (line 281) | fn test_get_module_name() {
  function test_get_enum_name (line 290) | fn test_get_enum_name() {
  function test_get_def (line 299) | fn test_get_def() {
  function test_get_rel_type (line 317) | fn test_get_rel_type() {
  function test_get_column_camel_case (line 326) | fn test_get_column_camel_case() {
  function test_get_ref_column_camel_case (line 335) | fn test_get_ref_column_camel_case() {

FILE: sea-orm-codegen/src/entity/transformer.rs
  type EntityTransformer (line 9) | pub struct EntityTransformer;
    method transform (line 12) | pub fn transform(table_create_stmts: Vec<TableCreateStatement>) -> Res...
  function duplicated_many_to_many_paths (line 288) | fn duplicated_many_to_many_paths() -> Result<(), Box<dyn Error>> {
  function many_to_many (line 321) | fn many_to_many() -> Result<(), Box<dyn Error>> {
  function many_to_many_multiple (line 343) | fn many_to_many_multiple() -> Result<(), Box<dyn Error>> {
  function self_referencing (line 371) | fn self_referencing() -> Result<(), Box<dyn Error>> {
  function test_indexes_transform (line 394) | fn test_indexes_transform() -> Result<(), Box<dyn Error>> {
  function filter_relations_to_missing_entities (line 418) | fn filter_relations_to_missing_entities() -> Result<(), Box<dyn Error>> {
  function filter_conjunct_relations_to_missing_entities (line 476) | fn filter_conjunct_relations_to_missing_entities() -> Result<(), Box<dyn...
  function parse_from_file (line 604) | fn parse_from_file<R>(inner: R) -> io::Result<TokenStream>

FILE: sea-orm-codegen/src/entity/writer.rs
  type EntityWriter (line 16) | pub struct EntityWriter {
    method generate (line 269) | pub fn generate(self, context: &EntityWriterContext) -> WriterOutput {
    method write_entities (line 299) | pub fn write_entities(&self, context: &EntityWriterContext) -> Vec<Out...
    method write_index_file (line 392) | pub fn write_index_file(
    method write_prelude (line 438) | pub fn write_prelude(
    method write_sea_orm_active_enums (line 467) | pub fn write_sea_orm_active_enums(
    method write (line 504) | pub fn write(lines: &mut Vec<String>, code_blocks: Vec<TokenStream>) {
    method write_doc_comment (line 513) | pub fn write_doc_comment(lines: &mut Vec<String>, banner_version: Bann...
    method write_allow_unused_imports (line 542) | pub fn write_allow_unused_imports(lines: &mut Vec<String>) {
    method gen_import (line 547) | pub fn gen_import(with_serde: &WithSerde) -> TokenStream {
    method gen_import_serde (line 555) | pub fn gen_import_serde(with_serde: &WithSerde) -> TokenStream {
    method gen_entity_struct (line 576) | pub fn gen_entity_struct() -> TokenStream {
    method gen_impl_entity_name (line 583) | pub fn gen_impl_entity_name(entity: &Entity, schema_name: &Option<Stri...
    method gen_import_active_enum (line 606) | pub fn gen_import_active_enum(entity: &Entity) -> TokenStream {
    method gen_column_enum (line 629) | pub fn gen_column_enum(entity: &Entity, column_extra_derives: &TokenSt...
    method gen_primary_key_enum (line 650) | pub fn gen_primary_key_enum(entity: &Entity) -> TokenStream {
    method gen_impl_primary_key (line 660) | pub fn gen_impl_primary_key(entity: &Entity, column_option: &ColumnOpt...
    method gen_relation_enum (line 674) | pub fn gen_relation_enum(entity: &Entity) -> TokenStream {
    method gen_impl_column_trait (line 684) | pub fn gen_impl_column_trait(entity: &Entity) -> TokenStream {
    method gen_impl_relation_trait (line 700) | pub fn gen_impl_relation_trait(entity: &Entity) -> TokenStream {
    method gen_impl_related (line 723) | pub fn gen_impl_related(entity: &Entity) -> Vec<TokenStream> {
    method gen_related_entity (line 750) | pub fn gen_related_entity(entity: &Entity) -> TokenStream {
    method gen_impl_conjunct_related (line 765) | pub fn gen_impl_conjunct_related(entity: &Entity) -> Vec<TokenStream> {
    method impl_active_model_behavior (line 790) | pub fn impl_active_model_behavior() -> TokenStream {
    method gen_mod (line 796) | pub fn gen_mod(entity: &Entity) -> TokenStream {
    method gen_seaography_entity_mod (line 806) | pub fn gen_seaography_entity_mod(
    method gen_prelude_use (line 848) | pub fn gen_prelude_use(entity: &Entity) -> TokenStream {
    method gen_prelude_use_model (line 856) | pub fn gen_prelude_use_model(entity: &Entity) -> TokenStream {
    method gen_schema_name (line 864) | pub fn gen_schema_name(schema_name: &Option<String>) -> Option<TokenSt...
  type WriterOutput (line 21) | pub struct WriterOutput {
  type OutputFile (line 25) | pub struct OutputFile {
  type WithPrelude (line 31) | pub enum WithPrelude {
  type WithSerde (line 39) | pub enum WithSerde {
    method extra_derive (line 102) | pub fn extra_derive(&self) -> TokenStream {
  type DateTimeCrate (line 48) | pub enum DateTimeCrate {
  type BigIntegerType (line 55) | pub enum BigIntegerType {
  type EntityFormat (line 62) | pub enum EntityFormat {
  type BannerVersion (line 71) | pub enum BannerVersion {
  type EntityWriterContext (line 80) | pub struct EntityWriterContext {
    method new (line 218) | pub fn new(
    method column_option (line 260) | fn column_option(&self) -> ColumnOption {
  function bonus_derive (line 131) | pub(crate) fn bonus_derive<T, I>(extra_derives: I) -> TokenStream
  function bonus_attributes (line 146) | pub(crate) fn bonus_attributes<T, I>(attributes: I) -> TokenStream
  type Err (line 164) | type Err = crate::Error;
  method from_str (line 166) | fn from_str(s: &str) -> Result<Self, Self::Err> {
  type Err (line 181) | type Err = crate::Error;
  method from_str (line 183) | fn from_str(s: &str) -> Result<Self, Self::Err> {
  type Err (line 199) | type Err = crate::Error;
  method from_str (line 201) | fn from_str(s: &str) -> Result<Self, Self::Err> {
  function default_column_option (line 884) | fn default_column_option() -> ColumnOption {
  function setup (line 888) | fn setup() -> Vec<Entity> {
  function parse_from_file (line 1582) | fn parse_from_file<R>(inner: R) -> io::Result<TokenStream>
  function parse_from_frontend_file (line 1600) | fn parse_from_frontend_file<R>(inner: R) -> io::Result<TokenStream>
  function test_gen_expanded_code_blocks (line 1619) | fn test_gen_expanded_code_blocks() -> io::Result<()> {
  function test_gen_compact_code_blocks (line 1707) | fn test_gen_compact_code_blocks() -> io::Result<()> {
  function test_gen_frontend_code_blocks (line 1795) | fn test_gen_frontend_code_blocks() -> io::Result<()> {
  function test_gen_with_serde (line 1883) | fn test_gen_with_serde() -> io::Result<()> {
  function test_gen_with_seaography (line 2102) | fn test_gen_with_seaography() -> io::Result<()> {
  function test_gen_with_seaography_mod (line 2224) | fn test_gen_with_seaography_mod() -> io::Result<()> {
  function test_gen_with_derives (line 2278) | fn test_gen_with_derives() -> io::Result<()> {
  function test_gen_with_column_derives (line 2488) | fn test_gen_with_column_derives() -> io::Result<()> {
  function assert_serde_variant_results (line 2534) | fn assert_serde_variant_results(
  function test_gen_with_attributes (line 2595) | fn test_gen_with_attributes() -> io::Result<()> {
  function generated_to_string (line 2771) | fn generated_to_string(generated: Vec<TokenStream>) -> String {
  function comparable_file_string (line 2781) | fn comparable_file_string(file: &str) -> io::Result<String> {
  function test_gen_postgres (line 2799) | fn test_gen_postgres() -> io::Result<()> {
  function test_gen_import_active_enum (line 2901) | fn test_gen_import_active_enum() -> io::Result<()> {
  function test_gen_dense_code_blocks (line 3033) | fn test_gen_dense_code_blocks() -> io::Result<()> {

FILE: sea-orm-codegen/src/entity/writer/compact.rs
  method gen_compact_code_blocks (line 5) | pub fn gen_compact_code_blocks(
  method gen_compact_model_struct (line 46) | pub fn gen_compact_model_struct(
  method gen_compact_relation_enum (line 138) | pub fn gen_compact_relation_enum(entity: &Entity) -> TokenStream {

FILE: sea-orm-codegen/src/entity/writer/dense.rs
  method gen_dense_code_blocks (line 7) | pub fn gen_dense_code_blocks(
  method gen_dense_model_struct (line 42) | pub fn gen_dense_model_struct(
  method gen_dense_related_entity (line 266) | fn gen_dense_related_entity(entity: &Entity) -> TokenStream {
  function test_name (line 300) | fn test_name() {

FILE: sea-orm-codegen/src/entity/writer/expanded.rs
  method gen_expanded_code_blocks (line 5) | pub fn gen_expanded_code_blocks(
  method gen_expanded_model_struct (line 51) | pub fn gen_expanded_model_struct(

FILE: sea-orm-codegen/src/entity/writer/frontend.rs
  method gen_frontend_code_blocks (line 5) | pub fn gen_frontend_code_blocks(
  method gen_frontend_model_struct (line 37) | pub fn gen_frontend_model_struct(

FILE: sea-orm-codegen/src/entity/writer/mermaid.rs
  method generate_er_diagram (line 11) | pub fn generate_er_diagram(&self) -> String {
  function write_entity_block (line 46) | fn write_entity_block(out: &mut String, entity: &Entity, pks: &HashSet<&...
  function write_relations (line 70) | fn write_relations(out: &mut String, entity: &Entity, emitted: &mut BTre...
  function col_type_name (line 106) | fn col_type_name(col_type: &ColumnType) -> &str {
  function setup_blog_schema (line 158) | fn setup_blog_schema() -> EntityWriter {
  function test_generate_er_diagram (line 362) | fn test_generate_er_diagram() {
  function test_er_diagram_deduplicates_m2m (line 397) | fn test_er_diagram_deduplicates_m2m() {

FILE: sea-orm-codegen/src/error.rs
  type Error (line 4) | pub enum Error {
    method fmt (line 10) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
    method source (line 19) | fn source(&self) -> Option<&(dyn error::Error + 'static)> {
    method from (line 28) | fn from(io_err: io::Error) -> Self {

FILE: sea-orm-codegen/src/merge/extract.rs
  function extract_active_model_behavior_impls (line 9) | pub(super) fn extract_active_model_behavior_impls(file: &File) -> impl I...
  function extract_top_level_uses (line 16) | pub(super) fn extract_top_level_uses(file: &File) -> impl Iterator<Item ...
  function find_model_struct (line 23) | pub(super) fn find_model_struct(file: &File) -> Option<&ItemStruct> {
  function find_relation_enum (line 34) | pub(super) fn find_relation_enum(file: &File) -> Option<&ItemEnum> {

FILE: sea-orm-codegen/src/merge/mod.rs
  type OldIndex (line 15) | struct OldIndex<'a> {
  function from_file (line 24) | fn from_file(file: &'a syn::File) -> OldIndex<'a> {
  type Merger (line 50) | struct Merger<'a> {
  function new (line 58) | fn new(
  method fold_item_struct (line 73) | fn fold_item_struct(&mut self, i: syn::ItemStruct) -> syn::ItemStruct {
  method fold_item_enum (line 90) | fn fold_item_enum(&mut self, i: syn::ItemEnum) -> syn::ItemEnum {
  method fold_file (line 103) | fn fold_file(&mut self, mut file: syn::File) -> syn::File {
  type MergeReport (line 151) | pub struct MergeReport {
    method fallback (line 158) | fn fallback(old_src: &str, new_src: &str) -> Self {
  function merge_entity_files (line 190) | pub fn merge_entity_files(old_src: &str, new_src: &str) -> Result<String...
  function merge_item_attributes (line 223) | fn merge_item_attributes(new_attrs: &mut Vec<Attribute>, old_attrs: &[At...
  function merge_derives (line 265) | fn merge_derives(new_attrs: &mut Vec<Attribute>, old_attrs: &[Attribute]) {
  function parse_derive_paths (line 316) | fn parse_derive_paths(attr: &Attribute) -> Option<Vec<Path>> {
  function merge_non_derive_attribute (line 322) | fn merge_non_derive_attribute(old_attr: &Attribute, new_attr: &Attribute...
  function is_active_model_behavior_impl (line 366) | fn is_active_model_behavior_impl(item_impl: &ItemImpl) -> bool {
  function is_doc_attribute (line 380) | fn is_doc_attribute(attr: &Attribute) -> bool {
  function render_file_with_spacing (line 384) | fn render_file_with_spacing(file: syn::File) -> String {
  function merge_preserves_behavior_and_attributes (line 480) | fn merge_preserves_behavior_and_attributes() {
  function merge_handles_field_changes (line 567) | fn merge_handles_field_changes() {
  function complex_use (line 621) | fn complex_use() {
  function conv_to_comment_fallback (line 662) | fn conv_to_comment_fallback() {
  function conflict_attrs_should_never_be_overwritten (line 710) | fn conflict_attrs_should_never_be_overwritten() {
  function conflict_attrs_should_be_merged (line 755) | fn conflict_attrs_should_be_merged() {

FILE: sea-orm-codegen/src/tests_cfg/compact/indexes.rs
  type Model (line 6) | pub struct Model {
  type Relation (line 18) | pub enum Relation {}

FILE: sea-orm-codegen/src/tests_cfg/dense/indexes.rs
  type Model (line 7) | pub struct Model {

FILE: sea-orm-codegen/src/tests_cfg/duplicated_many_to_many_paths/bills.rs
  type Model (line 5) | pub struct Model {
  type Relation (line 12) | pub enum Relation {
  method to (line 28) | fn to() -> RelationDef {
  method to (line 34) | fn to() -> RelationDef {
  method to (line 40) | fn to() -> RelationDef {

FILE: sea-orm-codegen/src/tests_cfg/duplicated_many_to_many_paths/users.rs
  type Model (line 5) | pub struct Model {
  type Relation (line 13) | pub enum Relation {
  method to (line 23) | fn to() -> RelationDef {
  method to (line 29) | fn to() -> RelationDef {
  method to (line 35) | fn to() -> RelationDef {

FILE: sea-orm-codegen/src/tests_cfg/duplicated_many_to_many_paths/users_saved_bills.rs
  type Model (line 5) | pub struct Model {
  type Relation (line 13) | pub enum Relation {
  method to (line 33) | fn to() -> RelationDef {
  method to (line 39) | fn to() -> RelationDef {

FILE: sea-orm-codegen/src/tests_cfg/duplicated_many_to_many_paths/users_votes.rs
  type Model (line 5) | pub struct Model {
  type Relation (line 14) | pub enum Relation {
  method to (line 34) | fn to() -> RelationDef {
  method to (line 40) | fn to() -> RelationDef {

FILE: sea-orm-codegen/src/tests_cfg/many_to_many/bills.rs
  type Model (line 5) | pub struct Model {
  type Relation (line 12) | pub enum Relation {
  method to (line 26) | fn to() -> RelationDef {
  method to (line 32) | fn to() -> RelationDef {
  method via (line 36) | fn via() -> Option<RelationDef> {

FILE: sea-orm-codegen/src/tests_cfg/many_to_many/users.rs
  type Model (line 5) | pub struct Model {
  type Relation (line 13) | pub enum Relation {
  method to (line 21) | fn to() -> RelationDef {
  method to (line 27) | fn to() -> RelationDef {
  method via (line 31) | fn via() -> Option<RelationDef> {

FILE: sea-orm-codegen/src/tests_cfg/many_to_many/users_votes.rs
  type Model (line 5) | pub struct Model {
  type Relation (line 14) | pub enum Relation {
  method to (line 34) | fn to() -> RelationDef {
  method to (line 40) | fn to() -> RelationDef {

FILE: sea-orm-codegen/src/tests_cfg/many_to_many_multiple/bills.rs
  type Model (line 5) | pub struct Model {
  type Relation (line 12) | pub enum Relation {
  method to (line 24) | fn to() -> RelationDef {

FILE: sea-orm-codegen/src/tests_cfg/many_to_many_multiple/users.rs
  type Model (line 5) | pub struct Model {
  type Relation (line 13) | pub enum Relation {
  method to (line 19) | fn to() -> RelationDef {

FILE: sea-orm-codegen/src/tests_cfg/many_to_many_multiple/users_votes.rs
  type Model (line 5) | pub struct Model {
  type Relation (line 16) | pub enum Relation {

FILE: sea-orm-codegen/src/tests_cfg/self_referencing/bills.rs
  type Model (line 5) | pub struct Model {
  type Relation (line 12) | pub enum Relation {

FILE: sea-orm-codegen/src/tests_cfg/self_referencing/users.rs
  type Model (line 5) | pub struct Model {
  type Relation (line 13) | pub enum Relation {

FILE: sea-orm-codegen/src/util.rs
  function escape_rust_keyword (line 1) | pub(crate) fn escape_rust_keyword<T>(string: T) -> String
  constant RUST_KEYWORDS (line 15) | pub(crate) const RUST_KEYWORDS: [&str; 49] = [
  constant RUST_SPECIAL_KEYWORDS (line 23) | pub(crate) const RUST_SPECIAL_KEYWORDS: [&str; 3] = ["crate", "Self", "s...

FILE: sea-orm-codegen/tests/compact/cake.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 15) | pub enum Relation {
  method to (line 21) | fn to() -> RelationDef {
  method to (line 27) | fn to() -> RelationDef {
  method via (line 30) | fn via() -> Option<RelationDef> {

FILE: sea-orm-codegen/tests/compact/cake_filling.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 15) | pub enum Relation {
  method to (line 35) | fn to() -> RelationDef {
  method to (line 41) | fn to() -> RelationDef {

FILE: sea-orm-codegen/tests/compact/cake_filling_price.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 16) | pub enum Relation {
  method to (line 26) | fn to() -> RelationDef {

FILE: sea-orm-codegen/tests/compact/cake_with_double.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 17) | pub enum Relation {
  method to (line 23) | fn to() -> RelationDef {
  method to (line 29) | fn to() -> RelationDef {
  method via (line 32) | fn via() -> Option<RelationDef> {

FILE: sea-orm-codegen/tests/compact/cake_with_float.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 17) | pub enum Relation {
  method to (line 23) | fn to() -> RelationDef {
  method to (line 29) | fn to() -> RelationDef {
  method via (line 32) | fn via() -> Option<RelationDef> {

FILE: sea-orm-codegen/tests/compact/child.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 15) | pub enum Relation {
  method to (line 25) | fn to() -> RelationDef {

FILE: sea-orm-codegen/tests/compact/collection.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 15) | pub enum Relation {}

FILE: sea-orm-codegen/tests/compact/collection_float.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 15) | pub enum Relation {}

FILE: sea-orm-codegen/tests/compact/filling.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 14) | pub enum Relation {}
  method to (line 17) | fn to() -> RelationDef {
  method via (line 20) | fn via() -> Option<RelationDef> {

FILE: sea-orm-codegen/tests/compact/fruit.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 15) | pub enum Relation {
  method to (line 27) | fn to() -> RelationDef {
  method to (line 33) | fn to() -> RelationDef {

FILE: sea-orm-codegen/tests/compact/parent.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 15) | pub enum Relation {
  method to (line 21) | fn to() -> RelationDef {

FILE: sea-orm-codegen/tests/compact/rust_keyword.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 25) | pub enum Relation {
  method to (line 59) | fn to() -> RelationDef {

FILE: sea-orm-codegen/tests/compact/vendor.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 17) | pub enum Relation {
  method to (line 27) | fn to() -> RelationDef {

FILE: sea-orm-codegen/tests/compact_with_attributes/cake_multiple.rs
  type Model (line 9) | pub struct Model {
  type Relation (line 17) | pub enum Relation {
  method to (line 23) | fn to() -> RelationDef {
  method to (line 29) | fn to() -> RelationDef {
  method via (line 32) | fn via() -> Option<RelationDef> {

FILE: sea-orm-codegen/tests/compact_with_attributes/cake_none.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 15) | pub enum Relation {
  method to (line 21) | fn to() -> RelationDef {
  method to (line 27) | fn to() -> RelationDef {
  method via (line 30) | fn via() -> Option<RelationDef> {

FILE: sea-orm-codegen/tests/compact_with_attributes/cake_one.rs
  type Model (line 8) | pub struct Model {
  type Relation (line 16) | pub enum Relation {
  method to (line 22) | fn to() -> RelationDef {
  method to (line 28) | fn to() -> RelationDef {
  method via (line 31) | fn via() -> Option<RelationDef> {

FILE: sea-orm-codegen/tests/compact_with_derives/cake_multiple.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 15) | pub enum Relation {
  method to (line 21) | fn to() -> RelationDef {
  method to (line 27) | fn to() -> RelationDef {
  method via (line 30) | fn via() -> Option<RelationDef> {

FILE: sea-orm-codegen/tests/compact_with_derives/cake_none.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 15) | pub enum Relation {
  method to (line 21) | fn to() -> RelationDef {
  method to (line 27) | fn to() -> RelationDef {
  method via (line 30) | fn via() -> Option<RelationDef> {

FILE: sea-orm-codegen/tests/compact_with_derives/cake_one.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 15) | pub enum Relation {
  method to (line 21) | fn to() -> RelationDef {
  method to (line 27) | fn to() -> RelationDef {
  method via (line 30) | fn via() -> Option<RelationDef> {

FILE: sea-orm-codegen/tests/compact_with_schema_name/cake.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 15) | pub enum Relation {
  method to (line 21) | fn to() -> RelationDef {
  method to (line 27) | fn to() -> RelationDef {
  method via (line 30) | fn via() -> Option<RelationDef> {

FILE: sea-orm-codegen/tests/compact_with_schema_name/cake_filling.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 15) | pub enum Relation {
  method to (line 35) | fn to() -> RelationDef {
  method to (line 41) | fn to() -> RelationDef {

FILE: sea-orm-codegen/tests/compact_with_schema_name/cake_filling_price.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 16) | pub enum Relation {
  method to (line 26) | fn to() -> RelationDef {

FILE: sea-orm-codegen/tests/compact_with_schema_name/cake_with_double.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 17) | pub enum Relation {
  method to (line 23) | fn to() -> RelationDef {
  method to (line 29) | fn to() -> RelationDef {
  method via (line 32) | fn via() -> Option<RelationDef> {

FILE: sea-orm-codegen/tests/compact_with_schema_name/cake_with_float.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 17) | pub enum Relation {
  method to (line 23) | fn to() -> RelationDef {
  method to (line 29) | fn to() -> RelationDef {
  method via (line 32) | fn via() -> Option<RelationDef> {

FILE: sea-orm-codegen/tests/compact_with_schema_name/child.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 15) | pub enum Relation {
  method to (line 25) | fn to() -> RelationDef {

FILE: sea-orm-codegen/tests/compact_with_schema_name/collection.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 15) | pub enum Relation {}

FILE: sea-orm-codegen/tests/compact_with_schema_name/collection_float.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 15) | pub enum Relation {}

FILE: sea-orm-codegen/tests/compact_with_schema_name/filling.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 14) | pub enum Relation {}
  method to (line 17) | fn to() -> RelationDef {
  method via (line 20) | fn via() -> Option<RelationDef> {

FILE: sea-orm-codegen/tests/compact_with_schema_name/fruit.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 15) | pub enum Relation {
  method to (line 27) | fn to() -> RelationDef {
  method to (line 33) | fn to() -> RelationDef {

FILE: sea-orm-codegen/tests/compact_with_schema_name/parent.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 15) | pub enum Relation {
  method to (line 21) | fn to() -> RelationDef {

FILE: sea-orm-codegen/tests/compact_with_schema_name/rust_keyword.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 25) | pub enum Relation {
  method to (line 59) | fn to() -> RelationDef {

FILE: sea-orm-codegen/tests/compact_with_schema_name/vendor.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 17) | pub enum Relation {
  method to (line 27) | fn to() -> RelationDef {

FILE: sea-orm-codegen/tests/compact_with_serde/cake_both.rs
  type Model (line 8) | pub struct Model {
  type Relation (line 17) | pub enum Relation {
  method to (line 23) | fn to() -> RelationDef {
  method to (line 29) | fn to() -> RelationDef {
  method via (line 32) | fn via() -> Option<RelationDef> {

FILE: sea-orm-codegen/tests/compact_with_serde/cake_deserialize.rs
  type Model (line 8) | pub struct Model {
  type Relation (line 17) | pub enum Relation {
  method to (line 23) | fn to() -> RelationDef {
  method to (line 29) | fn to() -> RelationDef {
  method via (line 32) | fn via() -> Option<RelationDef> {

FILE: sea-orm-codegen/tests/compact_with_serde/cake_none.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 15) | pub enum Relation {
  method to (line 21) | fn to() -> RelationDef {
  method to (line 27) | fn to() -> RelationDef {
  method via (line 30) | fn via() -> Option<RelationDef> {

FILE: sea-orm-codegen/tests/compact_with_serde/cake_serialize.rs
  type Model (line 8) | pub struct Model {
  type Relation (line 16) | pub enum Relation {
  method to (line 22) | fn to() -> RelationDef {
  method to (line 28) | fn to() -> RelationDef {
  method via (line 31) | fn via() -> Option<RelationDef> {

FILE: sea-orm-codegen/tests/compact_with_serde/cake_serialize_with_hidden_column.rs
  type Model (line 8) | pub struct Model {
  type Relation (line 17) | pub enum Relation {
  method to (line 23) | fn to() -> RelationDef {
  method to (line 29) | fn to() -> RelationDef {
  method via (line 32) | fn via() -> Option<RelationDef> {

FILE: sea-orm-codegen/tests/dense/cake.rs
  type Model (line 8) | pub struct Model {

FILE: sea-orm-codegen/tests/dense/cake_filling.rs
  type Model (line 8) | pub struct Model {

FILE: sea-orm-codegen/tests/dense/cake_filling_price.rs
  type Model (line 8) | pub struct Model {

FILE: sea-orm-codegen/tests/dense/cake_with_double.rs
  type Model (line 8) | pub struct Model {

FILE: sea-orm-codegen/tests/dense/cake_with_float.rs
  type Model (line 8) | pub struct Model {

FILE: sea-orm-codegen/tests/dense/child.rs
  type Model (line 8) | pub struct Model {

FILE: sea-orm-codegen/tests/dense/collection.rs
  type Model (line 8) | pub struct Model {

FILE: sea-orm-codegen/tests/dense/collection_float.rs
  type Model (line 8) | pub struct Model {

FILE: sea-orm-codegen/tests/dense/filling.rs
  type Model (line 8) | pub struct Model {

FILE: sea-orm-codegen/tests/dense/fruit.rs
  type Model (line 8) | pub struct Model {

FILE: sea-orm-codegen/tests/dense/parent.rs
  type Model (line 8) | pub struct Model {

FILE: sea-orm-codegen/tests/dense/rust_keyword.rs
  type Model (line 8) | pub struct Model {

FILE: sea-orm-codegen/tests/dense/vendor.rs
  type Model (line 8) | pub struct Model {

FILE: sea-orm-codegen/tests/expanded/cake.rs
  type Entity (line 6) | pub struct Entity;
    method to (line 63) | fn to() -> RelationDef {
    method to (line 69) | fn to() -> RelationDef {
    method via (line 72) | fn via() -> Option<RelationDef> {
  method table_name (line 9) | fn table_name(&self) -> & 'static str {
  type Model (line 15) | pub struct Model {
  type Column (line 21) | pub enum Column {
  type PrimaryKey (line 27) | pub enum PrimaryKey {
  type ValueType (line 32) | type ValueType = i32;
  method auto_increment (line 34) | fn auto_increment() -> bool {
  type Relation (line 40) | pub enum Relation {
  type EntityName (line 45) | type EntityName = Entity;
  method def (line 46) | fn def(&self) -> ColumnDef {
  method def (line 55) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded/cake_filling.rs
  type Entity (line 6) | pub struct Entity;
    method to (line 72) | fn to() -> RelationDef {
    method to (line 78) | fn to() -> RelationDef {
  method table_name (line 9) | fn table_name(&self) -> & 'static str {
  type Model (line 15) | pub struct Model {
  type Column (line 21) | pub enum Column {
  type PrimaryKey (line 27) | pub enum PrimaryKey {
  type ValueType (line 33) | type ValueType = (i32, i32);
  method auto_increment (line 35) | fn auto_increment() -> bool {
  type Relation (line 41) | pub enum Relation {
  type EntityName (line 47) | type EntityName = Entity;
  method def (line 48) | fn def(&self) -> ColumnDef {
  method def (line 57) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded/cake_filling_price.rs
  type Entity (line 6) | pub struct Entity;
    method to (line 74) | fn to() -> RelationDef {
  method table_name (line 9) | fn table_name(&self) -> & 'static str {
  type Model (line 15) | pub struct Model {
  type Column (line 22) | pub enum Column {
  type PrimaryKey (line 29) | pub enum PrimaryKey {
  type ValueType (line 35) | type ValueType = (i32, i32);
  method auto_increment (line 37) | fn auto_increment() -> bool {
  type Relation (line 43) | pub enum Relation {
  type EntityName (line 48) | type EntityName = Entity;
  method def (line 50) | fn def(&self) -> ColumnDef {
  method def (line 60) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded/cake_with_double.rs
  type Entity (line 6) | pub struct Entity;
    method to (line 66) | fn to() -> RelationDef {
    method to (line 72) | fn to() -> RelationDef {
    method via (line 75) | fn via() -> Option<RelationDef> {
  method table_name (line 9) | fn table_name(&self) -> & 'static str {
  type Model (line 15) | pub struct Model {
  type Column (line 22) | pub enum Column {
  type PrimaryKey (line 29) | pub enum PrimaryKey {
  type ValueType (line 34) | type ValueType = i32;
  method auto_increment (line 36) | fn auto_increment() -> bool {
  type Relation (line 42) | pub enum Relation {
  type EntityName (line 47) | type EntityName = Entity;
  method def (line 48) | fn def(&self) -> ColumnDef {
  method def (line 58) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded/cake_with_float.rs
  type Entity (line 6) | pub struct Entity;
    method to (line 66) | fn to() -> RelationDef {
    method to (line 72) | fn to() -> RelationDef {
    method via (line 75) | fn via() -> Option<RelationDef> {
  method table_name (line 9) | fn table_name(&self) -> & 'static str {
  type Model (line 15) | pub struct Model {
  type Column (line 22) | pub enum Column {
  type PrimaryKey (line 29) | pub enum PrimaryKey {
  type ValueType (line 34) | type ValueType = i32;
  method auto_increment (line 36) | fn auto_increment() -> bool {
  type Relation (line 42) | pub enum Relation {
  type EntityName (line 47) | type EntityName = Entity;
  method def (line 48) | fn def(&self) -> ColumnDef {
  method def (line 58) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded/child.rs
  type Entity (line 6) | pub struct Entity;
    method to (line 68) | fn to() -> RelationDef {
  method table_name (line 9) | fn table_name(&self) -> & 'static str {
  type Model (line 15) | pub struct Model {
  type Column (line 22) | pub enum Column {
  type PrimaryKey (line 29) | pub enum PrimaryKey {
  type ValueType (line 34) | type ValueType = i32;
  method auto_increment (line 35) | fn auto_increment() -> bool {
  type Relation (line 41) | pub enum Relation {
  type EntityName (line 46) | type EntityName = Entity;
  method def (line 47) | fn def(&self) -> ColumnDef {
  method def (line 57) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded/collection.rs
  type Entity (line 6) | pub struct Entity;
  method table_name (line 9) | fn table_name(&self) -> & 'static str {
  type Model (line 15) | pub struct Model {
  type Column (line 22) | pub enum Column {
  type PrimaryKey (line 29) | pub enum PrimaryKey {
  type ValueType (line 34) | type ValueType = i32;
  method auto_increment (line 35) | fn auto_increment() -> bool {
  type Relation (line 41) | pub enum Relation {}
  type EntityName (line 44) | type EntityName = Entity;
  method def (line 45) | fn def(&self) -> ColumnDef {
  method def (line 55) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded/collection_float.rs
  type Entity (line 6) | pub struct Entity;
  method table_name (line 9) | fn table_name(&self) -> & 'static str {
  type Model (line 15) | pub struct Model {
  type Column (line 22) | pub enum Column {
  type PrimaryKey (line 29) | pub enum PrimaryKey {
  type ValueType (line 34) | type ValueType = i32;
  method auto_increment (line 35) | fn auto_increment() -> bool {
  type Relation (line 41) | pub enum Relation {}
  type EntityName (line 44) | type EntityName = Entity;
  method def (line 45) | fn def(&self) -> ColumnDef {
  method def (line 55) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded/filling.rs
  type Entity (line 6) | pub struct Entity;
    method to (line 59) | fn to() -> RelationDef {
    method via (line 62) | fn via() -> Option<RelationDef> {
  method table_name (line 9) | fn table_name(&self) -> & 'static str {
  type Model (line 15) | pub struct Model {
  type Column (line 21) | pub enum Column {
  type PrimaryKey (line 27) | pub enum PrimaryKey {
  type ValueType (line 32) | type ValueType = i32;
  method auto_increment (line 34) | fn auto_increment() -> bool {
  type Relation (line 40) | pub enum Relation {}
  type EntityName (line 43) | type EntityName = Entity;
  method def (line 44) | fn def(&self) -> ColumnDef {
  method def (line 53) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded/fruit.rs
  type Entity (line 6) | pub struct Entity;
    method to (line 71) | fn to() -> RelationDef {
    method to (line 77) | fn to() -> RelationDef {
  method table_name (line 9) | fn table_name(&self) -> & 'static str {
  type Model (line 15) | pub struct Model {
  type Column (line 22) | pub enum Column {
  type PrimaryKey (line 29) | pub enum PrimaryKey {
  type ValueType (line 34) | type ValueType = i32;
  method auto_increment (line 36) | fn auto_increment() -> bool {
  type Relation (line 42) | pub enum Relation {
  type EntityName (line 48) | type EntityName = Entity;
  method def (line 49) | fn def(&self) -> ColumnDef {
  method def (line 59) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded/parent.rs
  type Entity (line 6) | pub struct Entity;
    method to (line 63) | fn to() -> RelationDef {
  method table_name (line 9) | fn table_name(&self) -> & 'static str {
  type Model (line 15) | pub struct Model {
  type Column (line 21) | pub enum Column {
  type PrimaryKey (line 27) | pub enum PrimaryKey {
  type ValueType (line 33) | type ValueType = (i32, i32);
  method auto_increment (line 34) | fn auto_increment() -> bool {
  type Relation (line 40) | pub enum Relation {
  type EntityName (line 45) | type EntityName = Entity;
  method def (line 46) | fn def(&self) -> ColumnDef {
  method def (line 55) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded/rust_keyword.rs
  type Entity (line 6) | pub struct Entity;
    method to (line 120) | fn to() -> RelationDef {
  method table_name (line 9) | fn table_name(&self) -> & 'static str {
  type Model (line 15) | pub struct Model {
  type Column (line 32) | pub enum Column {
  type PrimaryKey (line 49) | pub enum PrimaryKey {
  type ValueType (line 54) | type ValueType = i32;
  method auto_increment (line 56) | fn auto_increment() -> bool {
  type Relation (line 62) | pub enum Relation {
  type EntityName (line 71) | type EntityName = Entity;
  method def (line 73) | fn def(&self) -> ColumnDef {
  method def (line 93) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded/vendor.rs
  type Entity (line 6) | pub struct Entity;
    method to (line 71) | fn to() -> RelationDef {
  method table_name (line 9) | fn table_name(&self) -> & 'static str {
  type Model (line 15) | pub struct Model {
  type Column (line 22) | pub enum Column {
  type PrimaryKey (line 31) | pub enum PrimaryKey {
  type ValueType (line 36) | type ValueType = i32;
  method auto_increment (line 38) | fn auto_increment() -> bool {
  type Relation (line 44) | pub enum Relation {
  type EntityName (line 49) | type EntityName = Entity;
  method def (line 50) | fn def(&self) -> ColumnDef {
  method def (line 60) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded_with_attributes/cake_multiple.rs
  type Entity (line 6) | pub struct Entity;
    method to (line 65) | fn to() -> RelationDef {
    method to (line 71) | fn to() -> RelationDef {
    method via (line 74) | fn via() -> Option<RelationDef> {
  method table_name (line 9) | fn table_name(&self) -> & 'static str {
  type Model (line 17) | pub struct Model {
  type Column (line 23) | pub enum Column {
  type PrimaryKey (line 29) | pub enum PrimaryKey {
  type ValueType (line 34) | type ValueType = i32;
  method auto_increment (line 36) | fn auto_increment() -> bool {
  type Relation (line 42) | pub enum Relation {
  type EntityName (line 47) | type EntityName = Entity;
  method def (line 48) | fn def(&self) -> ColumnDef {
  method def (line 57) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded_with_attributes/cake_none.rs
  type Entity (line 6) | pub struct Entity;
    method to (line 63) | fn to() -> RelationDef {
    method to (line 69) | fn to() -> RelationDef {
    method via (line 72) | fn via() -> Option<RelationDef> {
  method table_name (line 9) | fn table_name(&self) -> & 'static str {
  type Model (line 15) | pub struct Model {
  type Column (line 21) | pub enum Column {
  type PrimaryKey (line 27) | pub enum PrimaryKey {
  type ValueType (line 32) | type ValueType = i32;
  method auto_increment (line 34) | fn auto_increment() -> bool {
  type Relation (line 40) | pub enum Relation {
  type EntityName (line 45) | type EntityName = Entity;
  method def (line 46) | fn def(&self) -> ColumnDef {
  method def (line 55) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded_with_attributes/cake_one.rs
  type Entity (line 6) | pub struct Entity;
    method to (line 64) | fn to() -> RelationDef {
    method to (line 70) | fn to() -> RelationDef {
    method via (line 73) | fn via() -> Option<RelationDef> {
  method table_name (line 9) | fn table_name(&self) -> & 'static str {
  type Model (line 16) | pub struct Model {
  type Column (line 22) | pub enum Column {
  type PrimaryKey (line 28) | pub enum PrimaryKey {
  type ValueType (line 33) | type ValueType = i32;
  method auto_increment (line 35) | fn auto_increment() -> bool {
  type Relation (line 41) | pub enum Relation {
  type EntityName (line 46) | type EntityName = Entity;
  method def (line 47) | fn def(&self) -> ColumnDef {
  method def (line 56) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded_with_column_derives/cake_multiple.rs
  type Entity (line 6) | pub struct Entity;
    method to (line 63) | fn to() -> RelationDef {
    method to (line 69) | fn to() -> RelationDef {
    method via (line 72) | fn via() -> Option<RelationDef> {
  method table_name (line 9) | fn table_name(&self) -> & 'static str {
  type Model (line 15) | pub struct Model {
  type Column (line 21) | pub enum Column {
  type PrimaryKey (line 27) | pub enum PrimaryKey {
  type ValueType (line 32) | type ValueType = i32;
  method auto_increment (line 34) | fn auto_increment() -> bool {
  type Relation (line 40) | pub enum Relation {
  type EntityName (line 45) | type EntityName = Entity;
  method def (line 46) | fn def(&self) -> ColumnDef {
  method def (line 55) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded_with_column_derives/cake_none.rs
  type Entity (line 6) | pub struct Entity;
    method to (line 63) | fn to() -> RelationDef {
    method to (line 69) | fn to() -> RelationDef {
    method via (line 72) | fn via() -> Option<RelationDef> {
  method table_name (line 9) | fn table_name(&self) -> & 'static str {
  type Model (line 15) | pub struct Model {
  type Column (line 21) | pub enum Column {
  type PrimaryKey (line 27) | pub enum PrimaryKey {
  type ValueType (line 32) | type ValueType = i32;
  method auto_increment (line 34) | fn auto_increment() -> bool {
  type Relation (line 40) | pub enum Relation {
  type EntityName (line 45) | type EntityName = Entity;
  method def (line 46) | fn def(&self) -> ColumnDef {
  method def (line 55) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded_with_column_derives/cake_one.rs
  type Entity (line 6) | pub struct Entity;
    method to (line 63) | fn to() -> RelationDef {
    method to (line 69) | fn to() -> RelationDef {
    method via (line 72) | fn via() -> Option<RelationDef> {
  method table_name (line 9) | fn table_name(&self) -> & 'static str {
  type Model (line 15) | pub struct Model {
  type Column (line 21) | pub enum Column {
  type PrimaryKey (line 27) | pub enum PrimaryKey {
  type ValueType (line 32) | type ValueType = i32;
  method auto_increment (line 34) | fn auto_increment() -> bool {
  type Relation (line 40) | pub enum Relation {
  type EntityName (line 45) | type EntityName = Entity;
  method def (line 46) | fn def(&self) -> ColumnDef {
  method def (line 55) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded_with_derives/cake_multiple.rs
  type Entity (line 6) | pub struct Entity;
    method to (line 63) | fn to() -> RelationDef {
    method to (line 69) | fn to() -> RelationDef {
    method via (line 72) | fn via() -> Option<RelationDef> {
  method table_name (line 9) | fn table_name(&self) -> & 'static str {
  type Model (line 15) | pub struct Model {
  type Column (line 21) | pub enum Column {
  type PrimaryKey (line 27) | pub enum PrimaryKey {
  type ValueType (line 32) | type ValueType = i32;
  method auto_increment (line 34) | fn auto_increment() -> bool {
  type Relation (line 40) | pub enum Relation {
  type EntityName (line 45) | type EntityName = Entity;
  method def (line 46) | fn def(&self) -> ColumnDef {
  method def (line 55) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded_with_derives/cake_none.rs
  type Entity (line 6) | pub struct Entity;
    method to (line 63) | fn to() -> RelationDef {
    method to (line 69) | fn to() -> RelationDef {
    method via (line 72) | fn via() -> Option<RelationDef> {
  method table_name (line 9) | fn table_name(&self) -> & 'static str {
  type Model (line 15) | pub struct Model {
  type Column (line 21) | pub enum Column {
  type PrimaryKey (line 27) | pub enum PrimaryKey {
  type ValueType (line 32) | type ValueType = i32;
  method auto_increment (line 34) | fn auto_increment() -> bool {
  type Relation (line 40) | pub enum Relation {
  type EntityName (line 45) | type EntityName = Entity;
  method def (line 46) | fn def(&self) -> ColumnDef {
  method def (line 55) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded_with_derives/cake_one.rs
  type Entity (line 6) | pub struct Entity;
    method to (line 63) | fn to() -> RelationDef {
    method to (line 69) | fn to() -> RelationDef {
    method via (line 72) | fn via() -> Option<RelationDef> {
  method table_name (line 9) | fn table_name(&self) -> & 'static str {
  type Model (line 15) | pub struct Model {
  type Column (line 21) | pub enum Column {
  type PrimaryKey (line 27) | pub enum PrimaryKey {
  type ValueType (line 32) | type ValueType = i32;
  method auto_increment (line 34) | fn auto_increment() -> bool {
  type Relation (line 40) | pub enum Relation {
  type EntityName (line 45) | type EntityName = Entity;
  method def (line 46) | fn def(&self) -> ColumnDef {
  method def (line 55) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded_with_schema_name/cake.rs
  type Entity (line 6) | pub struct Entity;
    method to (line 67) | fn to() -> RelationDef {
    method to (line 73) | fn to() -> RelationDef {
    method via (line 76) | fn via() -> Option<RelationDef> {
  method schema_name (line 9) | fn schema_name(&self) -> Option< &str > {
  method table_name (line 13) | fn table_name(&self) -> & 'static str {
  type Model (line 19) | pub struct Model {
  type Column (line 25) | pub enum Column {
  type PrimaryKey (line 31) | pub enum PrimaryKey {
  type ValueType (line 36) | type ValueType = i32;
  method auto_increment (line 38) | fn auto_increment() -> bool {
  type Relation (line 44) | pub enum Relation {
  type EntityName (line 49) | type EntityName = Entity;
  method def (line 50) | fn def(&self) -> ColumnDef {
  method def (line 59) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded_with_schema_name/cake_filling.rs
  type Entity (line 6) | pub struct Entity;
    method to (line 76) | fn to() -> RelationDef {
    method to (line 82) | fn to() -> RelationDef {
  method schema_name (line 9) | fn schema_name(&self) -> Option< &str > {
  method table_name (line 13) | fn table_name(&self) -> & 'static str {
  type Model (line 19) | pub struct Model {
  type Column (line 25) | pub enum Column {
  type PrimaryKey (line 31) | pub enum PrimaryKey {
  type ValueType (line 37) | type ValueType = (i32, i32);
  method auto_increment (line 39) | fn auto_increment() -> bool {
  type Relation (line 45) | pub enum Relation {
  type EntityName (line 51) | type EntityName = Entity;
  method def (line 52) | fn def(&self) -> ColumnDef {
  method def (line 61) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded_with_schema_name/cake_filling_price.rs
  type Entity (line 6) | pub struct Entity;
    method to (line 78) | fn to() -> RelationDef {
  method schema_name (line 9) | fn schema_name(&self) -> Option< &str > {
  method table_name (line 13) | fn table_name(&self) -> & 'static str {
  type Model (line 19) | pub struct Model {
  type Column (line 26) | pub enum Column {
  type PrimaryKey (line 33) | pub enum PrimaryKey {
  type ValueType (line 39) | type ValueType = (i32, i32);
  method auto_increment (line 41) | fn auto_increment() -> bool {
  type Relation (line 47) | pub enum Relation {
  type EntityName (line 52) | type EntityName = Entity;
  method def (line 54) | fn def(&self) -> ColumnDef {
  method def (line 64) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded_with_schema_name/cake_with_double.rs
  type Entity (line 6) | pub struct Entity;
    method to (line 70) | fn to() -> RelationDef {
    method to (line 76) | fn to() -> RelationDef {
    method via (line 79) | fn via() -> Option<RelationDef> {
  method schema_name (line 9) | fn schema_name(&self) -> Option< &str > {
  method table_name (line 13) | fn table_name(&self) -> & 'static str {
  type Model (line 19) | pub struct Model {
  type Column (line 26) | pub enum Column {
  type PrimaryKey (line 33) | pub enum PrimaryKey {
  type ValueType (line 38) | type ValueType = i32;
  method auto_increment (line 40) | fn auto_increment() -> bool {
  type Relation (line 46) | pub enum Relation {
  type EntityName (line 51) | type EntityName = Entity;
  method def (line 52) | fn def(&self) -> ColumnDef {
  method def (line 62) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded_with_schema_name/cake_with_float.rs
  type Entity (line 6) | pub struct Entity;
    method to (line 70) | fn to() -> RelationDef {
    method to (line 76) | fn to() -> RelationDef {
    method via (line 79) | fn via() -> Option<RelationDef> {
  method schema_name (line 9) | fn schema_name(&self) -> Option< &str > {
  method table_name (line 13) | fn table_name(&self) -> & 'static str {
  type Model (line 19) | pub struct Model {
  type Column (line 26) | pub enum Column {
  type PrimaryKey (line 33) | pub enum PrimaryKey {
  type ValueType (line 38) | type ValueType = i32;
  method auto_increment (line 40) | fn auto_increment() -> bool {
  type Relation (line 46) | pub enum Relation {
  type EntityName (line 51) | type EntityName = Entity;
  method def (line 52) | fn def(&self) -> ColumnDef {
  method def (line 62) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded_with_schema_name/child.rs
  type Entity (line 6) | pub struct Entity;
    method to (line 72) | fn to() -> RelationDef {
  method schema_name (line 9) | fn schema_name(&self) -> Option< &str > {
  method table_name (line 13) | fn table_name(&self) -> & 'static str {
  type Model (line 19) | pub struct Model {
  type Column (line 26) | pub enum Column {
  type PrimaryKey (line 33) | pub enum PrimaryKey {
  type ValueType (line 38) | type ValueType = i32;
  method auto_increment (line 39) | fn auto_increment() -> bool {
  type Relation (line 45) | pub enum Relation {
  type EntityName (line 50) | type EntityName = Entity;
  method def (line 51) | fn def(&self) -> ColumnDef {
  method def (line 61) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded_with_schema_name/collection.rs
  type Entity (line 6) | pub struct Entity;
  method schema_name (line 9) | fn schema_name(&self) -> Option< &str > {
  method table_name (line 13) | fn table_name(&self) -> & 'static str {
  type Model (line 19) | pub struct Model {
  type Column (line 26) | pub enum Column {
  type PrimaryKey (line 33) | pub enum PrimaryKey {
  type ValueType (line 38) | type ValueType = i32;
  method auto_increment (line 39) | fn auto_increment() -> bool {
  type Relation (line 45) | pub enum Relation {}
  type EntityName (line 48) | type EntityName = Entity;
  method def (line 49) | fn def(&self) -> ColumnDef {
  method def (line 59) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded_with_schema_name/collection_float.rs
  type Entity (line 6) | pub struct Entity;
  method schema_name (line 9) | fn schema_name(&self) -> Option< &str > {
  method table_name (line 13) | fn table_name(&self) -> & 'static str {
  type Model (line 19) | pub struct Model {
  type Column (line 26) | pub enum Column {
  type PrimaryKey (line 33) | pub enum PrimaryKey {
  type ValueType (line 38) | type ValueType = i32;
  method auto_increment (line 39) | fn auto_increment() -> bool {
  type Relation (line 45) | pub enum Relation {}
  type EntityName (line 48) | type EntityName = Entity;
  method def (line 49) | fn def(&self) -> ColumnDef {
  method def (line 59) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded_with_schema_name/filling.rs
  type Entity (line 6) | pub struct Entity;
    method to (line 63) | fn to() -> RelationDef {
    method via (line 66) | fn via() -> Option<RelationDef> {
  method schema_name (line 9) | fn schema_name(&self) -> Option< &str > {
  method table_name (line 13) | fn table_name(&self) -> & 'static str {
  type Model (line 19) | pub struct Model {
  type Column (line 25) | pub enum Column {
  type PrimaryKey (line 31) | pub enum PrimaryKey {
  type ValueType (line 36) | type ValueType = i32;
  method auto_increment (line 38) | fn auto_increment() -> bool {
  type Relation (line 44) | pub enum Relation {}
  type EntityName (line 47) | type EntityName = Entity;
  method def (line 48) | fn def(&self) -> ColumnDef {
  method def (line 57) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded_with_schema_name/fruit.rs
  type Entity (line 6) | pub struct Entity;
    method to (line 75) | fn to() -> RelationDef {
    method to (line 81) | fn to() -> RelationDef {
  method schema_name (line 9) | fn schema_name(&self) -> Option< &str > {
  method table_name (line 13) | fn table_name(&self) -> & 'static str {
  type Model (line 19) | pub struct Model {
  type Column (line 26) | pub enum Column {
  type PrimaryKey (line 33) | pub enum PrimaryKey {
  type ValueType (line 38) | type ValueType = i32;
  method auto_increment (line 40) | fn auto_increment() -> bool {
  type Relation (line 46) | pub enum Relation {
  type EntityName (line 52) | type EntityName = Entity;
  method def (line 53) | fn def(&self) -> ColumnDef {
  method def (line 63) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded_with_schema_name/parent.rs
  type Entity (line 6) | pub struct Entity;
    method to (line 67) | fn to() -> RelationDef {
  method schema_name (line 9) | fn schema_name(&self) -> Option< &str > {
  method table_name (line 13) | fn table_name(&self) -> & 'static str {
  type Model (line 19) | pub struct Model {
  type Column (line 25) | pub enum Column {
  type PrimaryKey (line 31) | pub enum PrimaryKey {
  type ValueType (line 37) | type ValueType = (i32, i32);
  method auto_increment (line 38) | fn auto_increment() -> bool {
  type Relation (line 44) | pub enum Relation {
  type EntityName (line 49) | type EntityName = Entity;
  method def (line 50) | fn def(&self) -> ColumnDef {
  method def (line 59) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded_with_schema_name/rust_keyword.rs
  type Entity (line 6) | pub struct Entity;
    method to (line 124) | fn to() -> RelationDef {
  method schema_name (line 9) | fn schema_name(&self) -> Option< &str > {
  method table_name (line 13) | fn table_name(&self) -> & 'static str {
  type Model (line 19) | pub struct Model {
  type Column (line 36) | pub enum Column {
  type PrimaryKey (line 53) | pub enum PrimaryKey {
  type ValueType (line 58) | type ValueType = i32;
  method auto_increment (line 60) | fn auto_increment() -> bool {
  type Relation (line 66) | pub enum Relation {
  type EntityName (line 75) | type EntityName = Entity;
  method def (line 77) | fn def(&self) -> ColumnDef {
  method def (line 97) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded_with_schema_name/vendor.rs
  type Entity (line 6) | pub struct Entity;
    method to (line 75) | fn to() -> RelationDef {
  method schema_name (line 9) | fn schema_name(&self) -> Option< &str > {
  method table_name (line 13) | fn table_name(&self) -> & 'static str {
  type Model (line 19) | pub struct Model {
  type Column (line 26) | pub enum Column {
  type PrimaryKey (line 35) | pub enum PrimaryKey {
  type ValueType (line 40) | type ValueType = i32;
  method auto_increment (line 42) | fn auto_increment() -> bool {
  type Relation (line 48) | pub enum Relation {
  type EntityName (line 53) | type EntityName = Entity;
  method def (line 54) | fn def(&self) -> ColumnDef {
  method def (line 64) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded_with_serde/cake_both.rs
  type Entity (line 7) | pub struct Entity;
    method to (line 65) | fn to() -> RelationDef {
    method to (line 71) | fn to() -> RelationDef {
    method via (line 74) | fn via() -> Option<RelationDef> {
  method table_name (line 10) | fn table_name(&self) -> & 'static str {
  type Model (line 16) | pub struct Model {
  type Column (line 23) | pub enum Column {
  type PrimaryKey (line 29) | pub enum PrimaryKey {
  type ValueType (line 34) | type ValueType = i32;
  method auto_increment (line 36) | fn auto_increment() -> bool {
  type Relation (line 42) | pub enum Relation {
  type EntityName (line 47) | type EntityName = Entity;
  method def (line 48) | fn def(&self) -> ColumnDef {
  method def (line 57) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded_with_serde/cake_deserialize.rs
  type Entity (line 7) | pub struct Entity;
    method to (line 65) | fn to() -> RelationDef {
    method to (line 71) | fn to() -> RelationDef {
    method via (line 74) | fn via() -> Option<RelationDef> {
  method table_name (line 10) | fn table_name(&self) -> & 'static str {
  type Model (line 16) | pub struct Model {
  type Column (line 23) | pub enum Column {
  type PrimaryKey (line 29) | pub enum PrimaryKey {
  type ValueType (line 34) | type ValueType = i32;
  method auto_increment (line 36) | fn auto_increment() -> bool {
  type Relation (line 42) | pub enum Relation {
  type EntityName (line 47) | type EntityName = Entity;
  method def (line 48) | fn def(&self) -> ColumnDef {
  method def (line 57) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded_with_serde/cake_none.rs
  type Entity (line 6) | pub struct Entity;
    method to (line 63) | fn to() -> RelationDef {
    method to (line 69) | fn to() -> RelationDef {
    method via (line 72) | fn via() -> Option<RelationDef> {
  method table_name (line 9) | fn table_name(&self) -> & 'static str {
  type Model (line 15) | pub struct Model {
  type Column (line 21) | pub enum Column {
  type PrimaryKey (line 27) | pub enum PrimaryKey {
  type ValueType (line 32) | type ValueType = i32;
  method auto_increment (line 34) | fn auto_increment() -> bool {
  type Relation (line 40) | pub enum Relation {
  type EntityName (line 45) | type EntityName = Entity;
  method def (line 46) | fn def(&self) -> ColumnDef {
  method def (line 55) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded_with_serde/cake_serialize.rs
  type Entity (line 7) | pub struct Entity;
    method to (line 64) | fn to() -> RelationDef {
    method to (line 70) | fn to() -> RelationDef {
    method via (line 73) | fn via() -> Option<RelationDef> {
  method table_name (line 10) | fn table_name(&self) -> & 'static str {
  type Model (line 16) | pub struct Model {
  type Column (line 22) | pub enum Column {
  type PrimaryKey (line 28) | pub enum PrimaryKey {
  type ValueType (line 33) | type ValueType = i32;
  method auto_increment (line 35) | fn auto_increment() -> bool {
  type Relation (line 41) | pub enum Relation {
  type EntityName (line 46) | type EntityName = Entity;
  method def (line 47) | fn def(&self) -> ColumnDef {
  method def (line 56) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/expanded_with_serde/cake_serialize_with_hidden_column.rs
  type Entity (line 7) | pub struct Entity;
    method to (line 66) | fn to() -> RelationDef {
    method to (line 72) | fn to() -> RelationDef {
    method via (line 75) | fn via() -> Option<RelationDef> {
  method table_name (line 10) | fn table_name(&self) -> & 'static str {
  type Model (line 16) | pub struct Model {
  type Column (line 23) | pub enum Column {
  type PrimaryKey (line 30) | pub enum PrimaryKey {
  type ValueType (line 35) | type ValueType = i32;
  method auto_increment (line 37) | fn auto_increment() -> bool {
  type Relation (line 43) | pub enum Relation {
  type EntityName (line 48) | type EntityName = Entity;
  method def (line 49) | fn def(&self) -> ColumnDef {
  method def (line 58) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/frontend/cake.rs
  type Model (line 4) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend/cake_filling.rs
  type Model (line 4) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend/cake_filling_price.rs
  type Model (line 4) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend/cake_with_double.rs
  type Model (line 4) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend/cake_with_float.rs
  type Model (line 4) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend/child.rs
  type Model (line 4) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend/collection.rs
  type Model (line 4) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend/collection_float.rs
  type Model (line 4) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend/filling.rs
  type Model (line 4) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend/fruit.rs
  type Model (line 4) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend/parent.rs
  type Model (line 4) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend/rust_keyword.rs
  type Model (line 4) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend/vendor.rs
  type Model (line 4) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend_with_attributes/cake_multiple.rs
  type Model (line 6) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend_with_attributes/cake_none.rs
  type Model (line 4) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend_with_attributes/cake_one.rs
  type Model (line 5) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend_with_derives/cake_multiple.rs
  type Model (line 4) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend_with_derives/cake_none.rs
  type Model (line 4) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend_with_derives/cake_one.rs
  type Model (line 4) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend_with_schema_name/cake.rs
  type Model (line 4) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend_with_schema_name/cake_filling.rs
  type Model (line 4) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend_with_schema_name/cake_filling_price.rs
  type Model (line 4) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend_with_schema_name/cake_with_double.rs
  type Model (line 4) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend_with_schema_name/cake_with_float.rs
  type Model (line 4) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend_with_schema_name/child.rs
  type Model (line 4) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend_with_schema_name/collection.rs
  type Model (line 4) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend_with_schema_name/collection_float.rs
  type Model (line 4) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend_with_schema_name/filling.rs
  type Model (line 4) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend_with_schema_name/fruit.rs
  type Model (line 4) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend_with_schema_name/parent.rs
  type Model (line 4) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend_with_schema_name/rust_keyword.rs
  type Model (line 4) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend_with_schema_name/vendor.rs
  type Model (line 4) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend_with_serde/cake_both.rs
  type Model (line 6) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend_with_serde/cake_deserialize.rs
  type Model (line 6) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend_with_serde/cake_none.rs
  type Model (line 4) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend_with_serde/cake_serialize.rs
  type Model (line 6) | pub struct Model {

FILE: sea-orm-codegen/tests/frontend_with_serde/cake_serialize_with_hidden_column.rs
  type Model (line 6) | pub struct Model {

FILE: sea-orm-codegen/tests/postgres/binary_json.rs
  type Model (line 12) | pub struct Model {
  type Relation (line 20) | pub enum Relation {}

FILE: sea-orm-codegen/tests/postgres/binary_json_expanded.rs
  type Entity (line 11) | pub struct Entity;
  method schema_name (line 13) | fn schema_name(&self) -> Option< &str > {
  method table_name (line 16) | fn table_name(&self) -> & 'static str {
  type Model (line 22) | pub struct Model {
  type Column (line 29) | pub enum Column {
  type PrimaryKey (line 36) | pub enum PrimaryKey {
  type ValueType (line 41) | type ValueType = i32;
  method auto_increment (line 42) | fn auto_increment() -> bool {
  type Relation (line 48) | pub enum Relation {}
  type EntityName (line 50) | type EntityName = Entity;
  method def (line 51) | fn def(&self) -> ColumnDef {
  method def (line 61) | fn def(&self) -> RelationDef {

FILE: sea-orm-codegen/tests/with_seaography/cake.rs
  type Model (line 7) | pub struct Model {
  type Relation (line 16) | pub enum Relation {
  method to (line 24) | fn to() -> RelationDef {
  method to (line 30) | fn to() -> RelationDef {
  method via (line 33) | fn via() -> Option<RelationDef> {
  type RelatedEntity (line 41) | pub enum RelatedEntity {

FILE: sea-orm-codegen/tests/with_seaography/cake_expanded.rs
  type Entity (line 6) | pub struct Entity;
    method to (line 68) | fn to() -> RelationDef {
    method to (line 74) | fn to() -> RelationDef {
    method via (line 77) | fn via() -> Option<RelationDef> {
  method table_name (line 9) | fn table_name(&self) -> & 'static str {
  type Model (line 15) | pub struct Model {
  type Column (line 22) | pub enum Column {
  type PrimaryKey (line 29) | pub enum PrimaryKey {
  type ValueType (line 34) | type ValueType = i32;
  method auto_increment (line 36) | fn auto_increment() -> bool {
  type Relation (line 42) | pub enum Relation {
  type EntityName (line 48) | type EntityName = Entity;
  method def (line 49) | fn def(&self) -> ColumnDef {
  method def (line 59) | fn def(&self) -> RelationDef {
  type RelatedEntity (line 85) | pub enum RelatedEntity {

FILE: sea-orm-codegen/tests/with_seaography/cake_frontend.rs
  type Model (line 4) | pub struct Model {

FILE: sea-orm-macros/src/derives/active_enum.rs
  type ActiveEnum (line 8) | struct ActiveEnum {
    method new (line 32) | fn new(input: syn::DeriveInput) -> Result<Self, Error> {
    method expand (line 196) | fn expand(&self) -> syn::Result<TokenStream> {
    method impl_active_enum (line 202) | fn impl_active_enum(&self) -> TokenStream {
  type ActiveEnumVariant (line 18) | struct ActiveEnumVariant {
  type Error (line 25) | enum Error {
  function expand_derive_active_enum (line 443) | pub fn expand_derive_active_enum(input: syn::DeriveInput) -> syn::Result...

FILE: sea-orm-macros/src/derives/active_enum_display.rs
  type Error (line 6) | enum Error {
  type Display (line 11) | struct Display {
    method new (line 22) | fn new(input: syn::DeriveInput) -> Result<Self, Error> {
    method expand (line 66) | fn expand(&self) -> syn::Result<TokenStream> {
    method impl_active_enum_display (line 72) | fn impl_active_enum_display(&self) -> TokenStream {
  type DisplayVariant (line 16) | struct DisplayVariant {
  function expand_derive_active_enum_display (line 98) | pub fn expand_derive_active_enum_display(input: syn::DeriveInput) -> syn...

FILE: sea-orm-macros/src/derives/active_model.rs
  type DeriveActiveModel (line 9) | pub(crate) struct DeriveActiveModel {
    method new (line 17) | pub fn new(ident: &Ident, data: &Data) -> syn::Result<Self> {
    method define_active_model (line 76) | fn define_active_model(&self) -> TokenStream {
    method impl_active_model (line 91) | fn impl_active_model(&self) -> TokenStream {
    method impl_active_model_convert (line 97) | fn impl_active_model_convert(&self) -> TokenStream {
    method impl_active_model_trait (line 127) | fn impl_active_model_trait(&self) -> TokenStream {
    method impl_active_model_trait_methods (line 147) | pub fn impl_active_model_trait_methods(&self) -> TokenStream {
  function derive_into_model (line 216) | fn derive_into_model(ident: &Ident, data: &Data) -> syn::Result<TokenStr...
  function expand_derive_active_model (line 281) | pub fn expand_derive_active_model(ident: &Ident, data: &Data) -> syn::Re...

FILE: sea-orm-macros/src/derives/active_model_behavior.rs
  function expand_derive_active_model_behavior (line 6) | pub fn expand_derive_active_model_behavior(_ident: Ident, _data: Data) -...

FILE: sea-orm-macros/src/derives/active_model_ex.rs
  function expand_derive_active_model_ex (line 9) | pub fn expand_derive_active_model_ex(
  function expand_active_model_action (line 325) | fn expand_active_model_action(
  function expand_active_model_setters (line 700) | fn expand_active_model_setters(data: &Data) -> syn::Result<TokenStream> {
  function async_await (line 783) | fn async_await() -> (TokenStream, TokenStream) {

FILE: sea-orm-macros/src/derives/arrow_schema.rs
  function expand_derive_arrow_schema (line 6) | pub fn expand_derive_arrow_schema(
  type ArrowFieldAttrs (line 122) | struct ArrowFieldAttrs {
  type ArrowFieldInfo (line 132) | struct ArrowFieldInfo {
  function generate_field_definition (line 141) | fn generate_field_definition(info: &ArrowFieldInfo) -> TokenStream {
  function column_type_to_arrow_datatype (line 169) | fn column_type_to_arrow_datatype(col_type: &str, arrow_attrs: &ArrowFiel...
  function rust_type_to_arrow_datatype (line 284) | fn rust_type_to_arrow_datatype(field_type: &Type, arrow_attrs: &ArrowFie...
  function generate_timestamp_datatype (line 345) | fn generate_timestamp_datatype(arrow_attrs: &ArrowFieldAttrs, has_timezo...

FILE: sea-orm-macros/src/derives/attributes.rs
  type SeaOrm (line 7) | pub struct SeaOrm {
  type SeaOrm (line 29) | pub struct SeaOrm {
  type SeaOrm (line 50) | pub struct SeaOrm {
  type SeaOrm (line 73) | pub struct SeaOrm {
  type SeaOrm (line 89) | pub struct SeaOrm {

FILE: sea-orm-macros/src/derives/case_style.rs
  type CaseStyle (line 14) | pub enum CaseStyle {
    type Error (line 114) | type Error = syn::Error;
    method try_from (line 116) | fn try_from(value: &ParseNestedMeta) -> Result<Self, Self::Error> {
  constant VALID_CASE_STYLES (line 27) | const VALID_CASE_STYLES: &[&str] = &[
  method parse (line 41) | fn parse(input: ParseStream) -> syn::Result<Self> {
  type Err (line 57) | type Err = ();
  method from_str (line 59) | fn from_str(text: &str) -> Result<Self, ()> {
  type CaseStyleHelpers (line 78) | pub trait CaseStyleHelpers {
    method convert_case (line 79) | fn convert_case(&self, case_style: Option<CaseStyle>) -> String;
    method convert_case (line 83) | fn convert_case(&self, case_style: Option<CaseStyle>) -> String {
  function test_convert_case (line 129) | fn test_convert_case() {

FILE: sea-orm-macros/src/derives/column.rs
  function impl_iden (line 8) | pub fn impl_iden(ident: &Ident, data: &Data) -> syn::Result<TokenStream> {
  function impl_col_from_str (line 85) | pub fn impl_col_from_str(ident: &Ident, data: &Data) -> syn::Result<Toke...
  function expand_derive_column (line 141) | pub fn expand_derive_column(ident: &Ident, data: &Data) -> syn::Result<T...

FILE: sea-orm-macros/src/derives/derive_iden.rs
  function is_static_iden (line 8) | pub(super) fn is_static_iden(name: &str) -> bool {
  function impl_iden_for_unit_struct (line 16) | pub(super) fn impl_iden_for_unit_struct(
  function impl_iden_for_enum (line 41) | fn impl_iden_for_enum(
  function expand_derive_iden (line 108) | pub fn expand_derive_iden(input: DeriveInput) -> syn::Result<TokenStream> {

FILE: sea-orm-macros/src/derives/entity.rs
  type DeriveEntity (line 8) | struct DeriveEntity {
    method new (line 22) | fn new(input: syn::DeriveInput) -> Result<Self, syn::Error> {
    method expand (line 59) | fn expand(&self) -> TokenStream {
    method impl_entity_name (line 75) | fn impl_entity_name(&self) -> TokenStream {
    method impl_entity_trait (line 101) | fn impl_entity_trait(&self) -> TokenStream {
    method impl_iden (line 134) | fn impl_iden(&self) -> TokenStream {
    method impl_iden_static (line 150) | fn impl_iden_static(&self) -> TokenStream {
    method impl_entity_registry (line 163) | fn impl_entity_registry(&self) -> TokenStream {
  function expand_derive_entity (line 179) | pub fn expand_derive_entity(input: syn::DeriveInput) -> syn::Result<Toke...

FILE: sea-orm-macros/src/derives/entity_loader.rs
  type EntityLoaderSchema (line 7) | pub struct EntityLoaderSchema {
  type EntityLoaderField (line 11) | pub struct EntityLoaderField {
  function expand_entity_loader (line 22) | pub fn expand_entity_loader(schema: EntityLoaderSchema) -> TokenStream {

FILE: sea-orm-macros/src/derives/entity_model.rs
  constant NOT_AUTO_INCRE_TYPE_SUFFIX (line 14) | const NOT_AUTO_INCRE_TYPE_SUFFIX: [&str; 2] = ["String", "Uuid"];
  function convert_case (line 17) | fn convert_case(s: &str, case_style: CaseStyle) -> String {
  function serde_deserialize_name (line 42) | fn serde_deserialize_name(
  function consume_meta (line 58) | fn consume_meta(meta: ParseNestedMeta<'_>) {
  function expand_derive_entity_model (line 63) | pub fn expand_derive_entity_model(data: &Data, attrs: &[Attribute]) -> s...

FILE: sea-orm-macros/src/derives/from_query_result.rs
  type Error (line 10) | enum Error {
  type ItemType (line 14) | pub(super) enum ItemType {
  type DeriveFromQueryResult (line 20) | pub(super) struct DeriveFromQueryResult {
    method new (line 108) | fn new(
    method expand (line 158) | fn expand(&self) -> syn::Result<TokenStream> {
    method impl_from_query_result (line 162) | pub(super) fn impl_from_query_result(&self, prefix: bool) -> TokenStre...
  type FromQueryResultItem (line 26) | pub(super) struct FromQueryResultItem {
  type TryFromQueryResultCheck (line 41) | struct TryFromQueryResultCheck<'a>(bool, &'a FromQueryResultItem);
  method to_tokens (line 44) | fn to_tokens(&self, tokens: &mut TokenStream) {
  type TryFromQueryResultAssignment (line 86) | struct TryFromQueryResultAssignment<'a>(&'a FromQueryResultItem);
  method to_tokens (line 89) | fn to_tokens(&self, tokens: &mut TokenStream) {
  function expand_derive_from_query_result (line 196) | pub fn expand_derive_from_query_result(input: DeriveInput) -> syn::Resul...

FILE: sea-orm-macros/src/derives/into_active_model.rs
  type Error (line 7) | enum Error {
  type IntoActiveModelField (line 13) | pub(super) enum IntoActiveModelField {
    method ident (line 21) | pub(super) fn ident(&self) -> &syn::Ident {
  type DeriveIntoActiveModel (line 31) | pub(super) struct DeriveIntoActiveModel {
    method new (line 54) | fn new(input: syn::DeriveInput) -> Result<Self, Error> {
    method expand (line 126) | fn expand(&self) -> syn::Result<TokenStream> {
    method impl_into_active_model (line 133) | pub(super) fn impl_into_active_model(&self) -> TokenStream {
  function parse_field (line 218) | fn parse_field(field: &syn::Field) -> Result<Option<IntoActiveModelField...
  function expand_into_active_model (line 273) | pub fn expand_into_active_model(input: syn::DeriveInput) -> syn::Result<...
  function is_qualified_type (line 285) | fn is_qualified_type(ty: &syn::Type) -> bool {

FILE: sea-orm-macros/src/derives/migration.rs
  type DeriveMigrationName (line 4) | struct DeriveMigrationName {
    method new (line 9) | fn new(input: syn::DeriveInput) -> Self {
    method expand (line 15) | fn expand(&self) -> TokenStream {
  function expand_derive_migration_name (line 30) | pub fn expand_derive_migration_name(input: syn::DeriveInput) -> syn::Res...

FILE: sea-orm-macros/src/derives/model.rs
  type DeriveModel (line 12) | pub(crate) struct DeriveModel {
    method new (line 22) | pub fn new(ident: &Ident, data: &Data, attrs: &[Attribute]) -> syn::Re...
    method expand (line 93) | fn expand(&self) -> syn::Result<TokenStream> {
    method impl_from_query_result (line 103) | fn impl_from_query_result(&self) -> TokenStream {
    method impl_model_trait (line 191) | pub fn impl_model_trait<'a>(&'a self) -> TokenStream {
  function expand_derive_model (line 254) | pub fn expand_derive_model(

FILE: sea-orm-macros/src/derives/model_ex.rs
  function expand_sea_orm_model (line 14) | pub fn expand_sea_orm_model(input: ItemStruct, compact: bool) -> syn::Re...
  function expand_derive_model_ex (line 143) | pub fn expand_derive_model_ex(
  function relation_enum_variant (line 435) | fn relation_enum_variant(attr: &compound_attr::SeaOrm, ty: &str) -> Opti...
  function related_entity_enum_variant (line 556) | fn related_entity_enum_variant(
  function expand_impl_related_trait (line 593) | fn expand_impl_related_trait(attr: &compound_attr::SeaOrm, ty: &str) -> ...
  function expand_impl_related_self_via (line 660) | fn expand_impl_related_self_via(
  function get_related (line 714) | fn get_related<'a>(attr: &compound_attr::SeaOrm, ty: &'a str) -> (&'a st...
  function infer_relation_name_from_entity (line 730) | fn infer_relation_name_from_entity(s: &str) -> &str {
  function expand_find_by_unique_key (line 738) | fn expand_find_by_unique_key(
  function format_tuple (line 803) | fn format_tuple(prefix: &str, middle: &str, suffix: &str) -> String {
  function to_upper_camel_case (line 841) | fn to_upper_camel_case(i: &Ident) -> Ident {
  function test_format_tuple (line 850) | fn test_format_tuple() {

FILE: sea-orm-macros/src/derives/partial_model.rs
  type Error (line 15) | enum Error {
  type ColumnAs (line 24) | enum ColumnAs {
  type DerivePartialModel (line 44) | struct DerivePartialModel {
    method new (line 55) | fn new(input: syn::DeriveInput) -> Result<Self, Error> {
    method expand (line 192) | fn expand(&self) -> syn::Result<TokenStream> {
    method impl_partial_model (line 256) | fn impl_partial_model(&self) -> TokenStream {
  function expand_derive_partial_model (line 357) | pub fn expand_derive_partial_model(input: syn::DeriveInput) -> syn::Resu...
  type StdResult (line 387) | type StdResult<T> = Result<T, Box<dyn std::error::Error>>;
  constant CODE_SNIPPET_1 (line 389) | const CODE_SNIPPET_1: &str = r#"
  function test_load_macro_input_1 (line 401) | fn test_load_macro_input_1() -> StdResult<()> {
  constant CODE_SNIPPET_2 (line 434) | const CODE_SNIPPET_2: &str = r#"
  function test_load_macro_input_2 (line 442) | fn test_load_macro_input_2() -> StdResult<()> {

FILE: sea-orm-macros/src/derives/primary_key.rs
  function impl_primary_key_to_column (line 6) | fn impl_primary_key_to_column(ident: &Ident, data: &Data) -> syn::Result...
  function expand_derive_primary_key (line 53) | pub fn expand_derive_primary_key(ident: &Ident, data: &Data) -> syn::Res...

FILE: sea-orm-macros/src/derives/related_entity.rs
  type Error (line 10) | enum Error {
  type DeriveRelatedEntity (line 16) | struct DeriveRelatedEntity {
    method new (line 23) | fn new(input: syn::DeriveInput) -> Result<Self, Error> {
    method expand (line 46) | fn expand(&self) -> syn::Result<TokenStream> {
    method parse_lit_string (line 134) | fn parse_lit_string(lit: &syn::Lit) -> syn::Result<TokenStream> {
  function expand_derive_related_entity (line 146) | pub fn expand_derive_related_entity(input: syn::DeriveInput) -> syn::Res...
  function expand_derive_related_entity (line 166) | pub fn expand_derive_related_entity(_: syn::DeriveInput) -> syn::Result<...

FILE: sea-orm-macros/src/derives/relation.rs
  type Error (line 6) | enum Error {
  type DeriveRelation (line 11) | struct DeriveRelation {
    method new (line 18) | fn new(input: syn::DeriveInput) -> Result<Self, Error> {
    method expand (line 38) | fn expand(&self) -> syn::Result<TokenStream> {
    method impl_relation_trait (line 44) | fn impl_relation_trait(&self) -> syn::Result<TokenStream> {
  function expand_derive_relation (line 238) | pub fn expand_derive_relation(input: syn::DeriveInput) -> syn::Result<To...

FILE: sea-orm-macros/src/derives/try_getable_from_json.rs
  function expand_derive_from_json_query_result (line 4) | pub fn expand_derive_from_json_query_result(ident: Ident) -> syn::Result...

FILE: sea-orm-macros/src/derives/typed_column.rs
  function expand_typed_column (line 10) | pub fn expand_typed_column(data: &Data) -> syn::Result<(TokenStream, Tok...

FILE: sea-orm-macros/src/derives/util.rs
  function field_not_ignored (line 5) | pub(crate) fn field_not_ignored(field: &Field) -> bool {
  function field_not_ignored_compound (line 19) | pub(crate) fn field_not_ignored_compound(field: &Field) -> bool {
  function is_compound_field (line 45) | pub(crate) fn is_compound_field(field_type: &str) -> bool {
  function extract_compound_entity (line 52) | pub(crate) fn extract_compound_entity(ty: &str) -> &str {
  function format_field_ident (line 66) | pub(crate) fn format_field_ident(field: &Field) -> Ident {
  function trim_starting_raw_identifier (line 70) | pub(crate) fn trim_starting_raw_identifier<T>(string: T) -> String
  function escape_rust_keyword (line 80) | pub(crate) fn escape_rust_keyword<T>(string: T) -> String
  function camel_case_with_escaped_non_uax31 (line 137) | pub(crate) fn camel_case_with_escaped_non_uax31<T>(string: T) -> String
  constant RAW_IDENTIFIER (line 186) | pub(crate) const RAW_IDENTIFIER: &str = "r#";
  constant RUST_KEYWORDS (line 188) | pub(crate) const RUST_KEYWORDS: [&str; 49] = [
  constant RUST_SPECIAL_KEYWORDS (line 196) | pub(crate) const RUST_SPECIAL_KEYWORDS: [&str; 3] = ["crate", "Self", "s...
  type GetMeta (line 198) | pub(crate) trait GetMeta {
    method exists (line 199) | fn exists(&self, k: &str) -> bool;
    method get_as_kv (line 200) | fn get_as_kv(&self, k: &str) -> Option<String>;
    method get_as_kv_with_ident (line 201) | fn get_as_kv_with_ident(&self) -> Option<(Ident, String)>;
    method exists (line 205) | fn exists(&self, key: &str) -> bool {
    method get_as_kv (line 212) | fn get_as_kv(&self, key: &str) -> Option<String> {
    method get_as_kv_with_ident (line 233) | fn get_as_kv_with_ident(&self) -> Option<(Ident, String)> {
  function test_non_uax31_escape (line 257) | fn test_non_uax31_escape() {

FILE: sea-orm-macros/src/derives/value_type.rs
  type DeriveValueType (line 8) | enum DeriveValueType {
    method new (line 69) | fn new(input: syn::DeriveInput) -> syn::Result<Self> {
    method expand (line 119) | fn expand(&self) -> syn::Result<TokenStream> {
  type DeriveValueTypeStruct (line 13) | struct DeriveValueTypeStruct {
    method new (line 128) | fn new(
    method impl_value_type (line 164) | fn impl_value_type(&self) -> TokenStream {
  type DeriveValueTypeStructAttrs (line 22) | struct DeriveValueTypeStructAttrs {
    type Error (line 29) | type Error = syn::Error;
    method try_from (line 31) | fn try_from(attrs: value_type_attr::SeaOrm) -> syn::Result<Self> {
  type DeriveValueTypeString (line 40) | struct DeriveValueTypeString {
    method new (line 254) | fn new(name: Ident, attrs: DeriveValueTypeStringAttrs) -> syn::Result<...
    method impl_value_type (line 263) | fn impl_value_type(&self) -> TokenStream {
  type DeriveValueTypeStringAttrs (line 47) | struct DeriveValueTypeStringAttrs {
    type Error (line 54) | type Error = syn::Error;
    method try_from (line 56) | fn try_from(attrs: value_type_attr::SeaOrm) -> syn::Result<Self> {
  function expand_derive_value_type (line 349) | pub fn expand_derive_value_type(input: syn::DeriveInput) -> syn::Result<...

FILE: sea-orm-macros/src/derives/value_type_match.rs
  function column_type_expr (line 5) | pub fn column_type_expr(
  function column_type_wrapper (line 23) | pub fn column_type_wrapper(
  function is_numeric_column (line 112) | fn is_numeric_column(ty: &str) -> bool {
  function array_type_expr (line 129) | pub fn array_type_expr(
  function can_try_from_u64 (line 147) | pub fn can_try_from_u64(field_type: &str) -> bool {
  function trim_option (line 155) | fn trim_option(s: &str) -> (bool, &str) {

FILE: sea-orm-macros/src/lib.rs
  function derive_entity (line 80) | pub fn derive_entity(input: TokenStream) -> TokenStream {
  function derive_entity_model (line 140) | pub fn derive_entity_model(input: TokenStream) -> TokenStream {
  function derive_model_ex (line 171) | pub fn derive_model_ex(input: TokenStream) -> TokenStream {
  function derive_active_model_ex (line 188) | pub fn derive_active_model_ex(input: TokenStream) -> TokenStream {
  function derive_primary_key (line 270) | pub fn derive_primary_key(input: TokenStream) -> TokenStream {
  function derive_column (line 296) | pub fn derive_column(input: TokenStream) -> TokenStream {
  function derive_model (line 372) | pub fn derive_model(input: TokenStream) -> TokenStream {
  function derive_active_model (line 448) | pub fn derive_active_model(input: TokenStream) -> TokenStream {
  function derive_into_active_model (line 572) | pub fn derive_into_active_model(input: TokenStream) -> TokenStream {
  function derive_active_model_behavior (line 644) | pub fn derive_active_model_behavior(input: TokenStream) -> TokenStream {
  function derive_active_enum (line 697) | pub fn derive_active_enum(input: TokenStream) -> TokenStream {
  function derive_from_query_result (line 754) | pub fn derive_from_query_result(input: TokenStream) -> TokenStream {
  function derive_relation (line 789) | pub fn derive_relation(input: TokenStream) -> TokenStream {
  function derive_related_entity (line 825) | pub fn derive_related_entity(input: TokenStream) -> TokenStream {
  function derive_migration_name (line 853) | pub fn derive_migration_name(input: TokenStream) -> TokenStream {
  function derive_from_json_query_result (line 862) | pub fn derive_from_json_query_result(input: TokenStream) -> TokenStream {
  function derive_partial_model (line 1032) | pub fn derive_partial_model(input: TokenStream) -> TokenStream {
  function test (line 1044) | pub fn test(_: TokenStream, input: TokenStream) -> TokenStream {
  function enum_iter (line 1097) | pub fn enum_iter(input: TokenStream) -> TokenStream {
  function derive_value_type (line 1205) | pub fn derive_value_type(input: TokenStream) -> TokenStream {
  function derive_active_enum_display (line 1215) | pub fn derive_active_enum_display(input: TokenStream) -> TokenStream {
  function derive_iden (line 1250) | pub fn derive_iden(input: TokenStream) -> TokenStream {
  function derive_arrow_schema (line 1283) | pub fn derive_arrow_schema(input: TokenStream) -> TokenStream {
  function raw_sql (line 1297) | pub fn raw_sql(input: TokenStream) -> TokenStream {
  function sea_orm_model (line 1306) | pub fn sea_orm_model(_attr: TokenStream, input: TokenStream) -> TokenStr...
  function sea_orm_compact_model (line 1317) | pub fn sea_orm_compact_model(_attr: TokenStream, input: TokenStream) -> ...

FILE: sea-orm-macros/src/raw_sql.rs
  type CallArgs (line 8) | struct CallArgs {
  method parse (line 15) | fn parse(input: ParseStream) -> syn::Result<Self> {
  function expand (line 24) | pub fn expand(input: proc_macro::TokenStream) -> syn::Result<TokenStream> {

FILE: sea-orm-macros/src/strum/enum_iter.rs
  function enum_iter_inner (line 7) | pub fn enum_iter_inner(ast: &DeriveInput) -> syn::Result<TokenStream> {

FILE: sea-orm-macros/src/strum/helpers/case_style.rs
  type CaseStyle (line 12) | pub enum CaseStyle {
  constant VALID_CASE_STYLES (line 25) | const VALID_CASE_STYLES: &[&str] = &[
  method parse (line 39) | fn parse(input: ParseStream) -> syn::Result<Self> {
  type Err (line 55) | type Err = ();
  method from_str (line 57) | fn from_str(text: &str) -> Result<Self, ()> {
  type CaseStyleHelpers (line 76) | pub trait CaseStyleHelpers {
    method convert_case (line 77) | fn convert_case(&self, case_style: Option<CaseStyle>) -> String;
    method convert_case (line 81) | fn convert_case(&self, case_style: Option<CaseStyle>) -> String {
  function test_convert_case (line 112) | fn test_convert_case() {

FILE: sea-orm-macros/src/strum/helpers/metadata.rs
  type EnumMeta (line 36) | pub enum EnumMeta {
  method parse (line 50) | fn parse(input: ParseStream) -> syn::Result<Self> {
  type EnumDiscriminantsMeta (line 77) | pub enum EnumDiscriminantsMeta {
  method parse (line 85) | fn parse(input: ParseStream) -> syn::Result<Self> {
  type DeriveInputExt (line 117) | pub trait DeriveInputExt {
    method get_metadata (line 119) | fn get_metadata(&self) -> syn::Result<Vec<EnumMeta>>;
    method get_discriminants_metadata (line 122) | fn get_discriminants_metadata(&self) -> syn::Result<Vec<EnumDiscrimina...
    method get_metadata (line 126) | fn get_metadata(&self) -> syn::Result<Vec<EnumMeta>> {
    method get_discriminants_metadata (line 130) | fn get_discriminants_metadata(&self) -> syn::Result<Vec<EnumDiscrimina...
  type VariantMeta (line 135) | pub enum VariantMeta {
  method parse (line 168) | fn parse(input: ParseStream) -> syn::Result<Self> {
  type Prop (line 221) | struct Prop(Ident, LitStr);
  method parse (line 224) | fn parse(input: ParseStream) -> syn::Result<Self> {
  type VariantExt (line 235) | pub trait VariantExt {
    method get_metadata (line 237) | fn get_metadata(&self) -> syn::Result<Vec<VariantMeta>>;
    method get_metadata (line 241) | fn get_metadata(&self) -> syn::Result<Vec<VariantMeta>> {
  function get_metadata_inner (line 265) | fn get_metadata_inner<'a, T: Parse>(

FILE: sea-orm-macros/src/strum/helpers/mod.rs
  function non_enum_error (line 12) | pub fn non_enum_error() -> syn::Error {
  function occurrence_error (line 16) | pub fn occurrence_error<T: ToTokens>(fst: T, snd: T, attr: &str) -> syn:...

FILE: sea-orm-macros/src/strum/helpers/type_props.rs
  type HasTypeProperties (line 10) | pub trait HasTypeProperties {
    method get_type_properties (line 11) | fn get_type_properties(&self) -> syn::Result<StrumTypeProperties>;
    method get_type_properties (line 27) | fn get_type_properties(&self) -> syn::Result<StrumTypeProperties> {
  type StrumTypeProperties (line 15) | pub struct StrumTypeProperties {
    method crate_module_path (line 111) | pub fn crate_module_path(&self) -> Path {

FILE: sea-orm-macros/src/strum/helpers/variant_props.rs
  type HasStrumVariantProperties (line 7) | pub trait HasStrumVariantProperties {
    method get_variant_properties (line 8) | fn get_variant_properties(&self) -> syn::Result<StrumVariantProperties>;
    method get_variant_properties (line 26) | fn get_variant_properties(&self) -> syn::Result<StrumVariantProperties> {
  type StrumVariantProperties (line 12) | pub struct StrumVariantProperties {

FILE: sea-orm-macros/tests/derive_active_enum_test.rs
  type TestEnum (line 11) | enum TestEnum {
  type TestRenameAllWithoutCasesEnum (line 44) | enum TestRenameAllWithoutCasesEnum {
  type TestEnum2 (line 54) | pub enum TestEnum2 {
  type TestEnum3 (line 66) | pub enum TestEnum3 {
  function derive_active_enum_value (line 71) | fn derive_active_enum_value() {
  function derive_active_enum_from_value (line 93) | fn derive_active_enum_from_value() {
  function derive_active_enum_value_2 (line 145) | fn derive_active_enum_value_2() {

FILE: sea-orm-macros/tests/derive_entity_model_auto_increment_test.rs
  type Model (line 9) | pub struct Model {
  type Relation (line 15) | pub enum Relation {}
  type Model (line 25) | pub struct Model {
  type Relation (line 31) | pub enum Relation {}
  function test_auto_increment_default_by_type (line 37) | fn test_auto_increment_default_by_type() {

FILE: sea-orm-macros/tests/derive_entity_model_column_name_test.rs
  type Model (line 10) | pub struct Model {
  type Relation (line 22) | pub enum Relation {}
  function test_column_names (line 27) | fn test_column_names() {

FILE: sea-orm-macros/tests/derive_value_type_test.rs
  function when_user_import_nothing_macro_still_works_test (line 2) | fn when_user_import_nothing_macro_still_works_test() {
  function when_user_alias_result_macro_still_works_test (line 8) | fn when_user_alias_result_macro_still_works_test() {
  function when_stringy_newtype_works_test (line 16) | fn when_stringy_newtype_works_test() {
  function when_explicit_stringy_newtype_works_test (line 40) | fn when_explicit_stringy_newtype_works_test() {
  function when_custom_from_str_works (line 61) | fn when_custom_from_str_works() {

FILE: sea-orm-migration/src/cli.rs
  constant MIGRATION_DIR (line 13) | const MIGRATION_DIR: &str = "./";
  function run_cli (line 15) | pub async fn run_cli<M>(migrator: M)
  function run_cli_with_connection (line 27) | pub async fn run_cli_with_connection<M, F, Fut>(migrator: M, make_connec...
  function run_migrate (line 54) | pub async fn run_migrate<M>(
  type Cli (line 108) | pub struct Cli {
  function handle_error (line 136) | fn handle_error<E>(error: E)

FILE: sea-orm-migration/src/lib.rs
  type MigrationName (line 20) | pub trait MigrationName {
    method name (line 21) | fn name(&self) -> &str;
  type MigrationTrait (line 26) | pub trait MigrationTrait: MigrationName + Send + Sync {
    method up (line 28) | async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr>;
    method down (line 31) | async fn down(&self, _manager: &SchemaManager) -> Result<(), DbErr> {
    method use_transaction (line 40) | fn use_transaction(&self) -> Option<bool> {

FILE: sea-orm-migration/src/manager.rs
  type SchemaManager (line 13) | pub struct SchemaManager<'c> {
  function new (line 18) | pub fn new<T>(conn: T) -> Self
  function execute (line 27) | pub async fn execute<S>(&self, stmt: S) -> Result<(), DbErr>
  function exec_stmt (line 35) | pub async fn exec_stmt<S>(&self, stmt: S) -> Result<(), DbErr>
  function get_database_backend (line 42) | pub fn get_database_backend(&self) -> DbBackend {
  function get_connection (line 46) | pub fn get_connection(&self) -> &SchemaManagerConnection<'c> {
  function begin (line 57) | pub async fn begin(&self) -> Result<SchemaManager<'static>, DbErr> {
  function commit (line 65) | pub async fn commit(self) -> Result<(), DbErr> {
  function create_table (line 77) | pub async fn create_table(&self, stmt: TableCreateStatement) -> Result<(...
  function create_index (line 81) | pub async fn create_index(&self, stmt: IndexCreateStatement) -> Result<(...
  function create_foreign_key (line 85) | pub async fn create_foreign_key(&self, stmt: ForeignKeyCreateStatement) ...
  function create_type (line 89) | pub async fn create_type(&self, stmt: TypeCreateStatement) -> Result<(),...
  function alter_table (line 96) | pub async fn alter_table(&self, stmt: TableAlterStatement) -> Result<(),...
  function drop_table (line 100) | pub async fn drop_table(&self, stmt: TableDropStatement) -> Result<(), D...
  function rename_table (line 104) | pub async fn rename_table(&self, stmt: TableRenameStatement) -> Result<(...
  function truncate_table (line 108) | pub async fn truncate_table(&self, stmt: TableTruncateStatement) -> Resu...
  function drop_index (line 112) | pub async fn drop_index(&self, stmt: IndexDropStatement) -> Result<(), D...
  function drop_foreign_key (line 116) | pub async fn drop_foreign_key(&self, stmt: ForeignKeyDropStatement) -> R...
  function alter_type (line 120) | pub async fn alter_type(&self, stmt: TypeAlterStatement) -> Result<(), D...
  function drop_type (line 124) | pub async fn drop_type(&self, stmt: TypeDropStatement) -> Result<(), DbE...
  function has_table (line 131) | pub async fn has_table<T>(&self, table: T) -> Result<bool, DbErr>
  function has_column (line 138) | pub async fn has_column<T, C>(&self, _table: T, _column: C) -> Result<bo...
  function has_index (line 169) | pub async fn has_index<T, I>(&self, _table: T, _index: I) -> Result<bool...
  function has_table (line 201) | pub(crate) async fn has_table<C, T>(conn: &C, _table: T) -> Result<bool,...

FILE: sea-orm-migration/src/migrator.rs
  type MigrationStatus (line 18) | pub enum MigrationStatus {
  method fmt (line 26) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  type Migration (line 35) | pub struct Migration {
    method name (line 42) | pub fn name(&self) -> &str {
    method status (line 47) | pub fn status(&self) -> MigrationStatus {
  type MigratorTrait (line 54) | pub trait MigratorTrait: Send {
    method migrations (line 56) | fn migrations() -> Vec<Box<dyn MigrationTrait>>;
    method migration_table_name (line 59) | fn migration_table_name() -> DynIden {
    method get_migration_files (line 64) | fn get_migration_files() -> Vec<Migration> {
    method get_migration_models (line 75) | async fn get_migration_models<C>(db: &C) -> Result<Vec<seaql_migration...
    method get_migration_with_status (line 84) | async fn get_migration_with_status<C>(db: &C) -> Result<Vec<Migration>...
    method get_pending_migrations (line 96) | async fn get_pending_migrations<C>(db: &C) -> Result<Vec<Migration>, D...
    method get_applied_migrations (line 109) | async fn get_applied_migrations<C>(db: &C) -> Result<Vec<Migration>, D...
    method install (line 122) | async fn install<C>(db: &C) -> Result<(), DbErr>
    method status (line 130) | async fn status<C>(db: &C) -> Result<(), DbErr>
    method fresh (line 146) | async fn fresh<'c, C>(db: C) -> Result<(), DbErr>
    method refresh (line 156) | async fn refresh<'c, C>(db: C) -> Result<(), DbErr>
    method reset (line 167) | async fn reset<'c, C>(db: C) -> Result<(), DbErr>
    method uninstall (line 179) | async fn uninstall<'c, C>(db: C) -> Result<(), DbErr>
    method up (line 189) | async fn up<'c, C>(db: C, steps: Option<u32>) -> Result<(), DbErr>
    method down (line 199) | async fn down<'c, C>(db: C, steps: Option<u32>) -> Result<(), DbErr>
  function exec_fresh (line 209) | async fn exec_fresh<M>(manager: &SchemaManager<'_>) -> Result<(), DbErr>
  function exec_up (line 222) | async fn exec_up<M>(manager: &SchemaManager<'_>, steps: Option<u32>) -> ...
  function exec_down (line 239) | async fn exec_down<M>(manager: &SchemaManager<'_>, steps: Option<u32>) -...

FILE: sea-orm-migration/src/migrator/exec.rs
  function get_migration_models (line 16) | pub async fn get_migration_models<C>(
  function get_migration_with_status (line 36) | pub fn get_migration_with_status(
  function install (line 72) | pub async fn install<C>(db: &C, migration_table_name: DynIden) -> Result...
  function uninstall (line 86) | pub async fn uninstall(
  function drop_everything (line 96) | pub async fn drop_everything<C: ConnectionTrait + TransactionTrait>(db: ...
  function drop_everything_impl (line 106) | async fn drop_everything_impl<C: ConnectionTrait>(db: &C) -> Result<(), ...
  function should_use_transaction (line 184) | fn should_use_transaction(migration: &dyn crate::MigrationTrait, backend...
  function insert_migration_record (line 191) | async fn insert_migration_record<C: ConnectionTrait>(
  function delete_migration_record (line 213) | async fn delete_migration_record<C: ConnectionTrait>(
  function exec_up_with (line 226) | pub async fn exec_up_with(
  function exec_down_with (line 272) | pub async fn exec_down_with(

FILE: sea-orm-migration/src/migrator/queries.rs
  function query_tables (line 8) | pub fn query_tables<C>(db: &C) -> Result<SelectStatement, DbErr>
  function get_current_schema (line 31) | pub fn get_current_schema<C>(db: &C) -> SimpleExpr
  type InformationSchema (line 51) | enum InformationSchema {
  function query_mysql_foreign_keys (line 63) | pub fn query_mysql_foreign_keys<C>(db: &C) -> SelectStatement
  type PgType (line 94) | enum PgType {
  type PgDepend (line 103) | enum PgDepend {
  type PgNamespace (line 111) | enum PgNamespace {
  function query_pg_types (line 117) | pub fn query_pg_types<C>(db: &C) -> SelectStatement
  type QueryTable (line 145) | pub trait QueryTable {
    method table_name (line 148) | fn table_name(self, table_name: DynIden) -> Self::Statement;
    type Statement (line 152) | type Statement = SelectStatement;
    method table_name (line 154) | fn table_name(mut self, table_name: DynIden) -> SelectStatement {
    type Statement (line 161) | type Statement = sea_query::TableCreateStatement;
    method table_name (line 163) | fn table_name(mut self, table_name: DynIden) -> sea_query::TableCreate...
    type Statement (line 173) | type Statement = sea_orm::Insert<A>;
    method table_name (line 175) | fn table_name(mut self, table_name: DynIden) -> sea_orm::Insert<A> {
    type Statement (line 185) | type Statement = sea_orm::DeleteMany<E>;
    method table_name (line 187) | fn table_name(mut self, table_name: DynIden) -> sea_orm::DeleteMany<E> {

FILE: sea-orm-migration/src/migrator/with_self.rs
  type MigratorTraitSelf (line 10) | pub trait MigratorTraitSelf: Sized + Send + Sync {
    method migrations (line 12) | fn migrations(&self) -> Vec<Box<dyn MigrationTrait>>;
    method migration_table_name (line 15) | fn migration_table_name(&self) -> DynIden {
    method get_migration_files (line 20) | fn get_migration_files(&self) -> Vec<Migration> {
    method get_migration_models (line 31) | async fn get_migration_models<C>(&self, db: &C) -> Result<Vec<seaql_mi...
    method get_migration_with_status (line 40) | async fn get_migration_with_status<C>(&self, db: &C) -> Result<Vec<Mig...
    method get_pending_migrations (line 52) | async fn get_pending_migrations<C>(&self, db: &C) -> Result<Vec<Migrat...
    method get_applied_migrations (line 66) | async fn get_applied_migrations<C>(&self, db: &C) -> Result<Vec<Migrat...
    method install (line 80) | async fn install<C>(&self, db: &C) -> Result<(), DbErr>
    method status (line 88) | async fn status<C>(&self, db: &C) -> Result<(), DbErr>
    method fresh (line 104) | async fn fresh<'c, C>(&self, db: C) -> Result<(), DbErr>
    method refresh (line 114) | async fn refresh<'c, C>(&self, db: C) -> Result<(), DbErr>
    method reset (line 125) | async fn reset<'c, C>(&self, db: C) -> Result<(), DbErr>
    method uninstall (line 137) | async fn uninstall<'c, C>(&self, db: C) -> Result<(), DbErr>
    method up (line 147) | async fn up<'c, C>(&self, db: C, steps: Option<u32>) -> Result<(), DbErr>
    method down (line 157) | async fn down<'c, C>(&self, db: C, steps: Option<u32>) -> Result<(), D...
    method migrations (line 172) | fn migrations(&self) -> Vec<Box<dyn MigrationTrait>> {
    method migration_table_name (line 176) | fn migration_table_name(&self) -> DynIden {
    method get_migration_files (line 180) | fn get_migration_files(&self) -> Vec<Migration> {
    method get_migration_models (line 184) | async fn get_migration_models<C>(&self, db: &C) -> Result<Vec<seaql_mi...
    method get_migration_with_status (line 191) | async fn get_migration_with_status<C>(&self, db: &C) -> Result<Vec<Mig...
    method get_pending_migrations (line 198) | async fn get_pending_migrations<C>(&self, db: &C) -> Result<Vec<Migrat...
    method get_applied_migrations (line 205) | async fn get_applied_migrations<C>(&self, db: &C) -> Result<Vec<Migrat...
    method install (line 212) | async fn install<C>(&self, db: &C) -> Result<(), DbErr>
    method status (line 220) | async fn status<C>(&self, db: &C) -> Result<(), DbErr>
    method fresh (line 227) | async fn fresh<'c, C>(&self, db: C) -> Result<(), DbErr>
    method refresh (line 234) | async fn refresh<'c, C>(&self, db: C) -> Result<(), DbErr>
    method reset (line 241) | async fn reset<'c, C>(&self, db: C) -> Result<(), DbErr>
    method uninstall (line 248) | async fn uninstall<'c, C>(&self, db: C) -> Result<(), DbErr>
    method up (line 255) | async fn up<'c, C>(&self, db: C, steps: Option<u32>) -> Result<(), DbErr>
    method down (line 262) | async fn down<'c, C>(&self, db: C, steps: Option<u32>) -> Result<(), D...
  function exec_fresh (line 270) | async fn exec_fresh<M>(migrator: &M, manager: &SchemaManager<'_>) -> Res...
  function exec_up (line 283) | async fn exec_up<M>(
  function exec_down (line 304) | async fn exec_down<M>(

FILE: sea-orm-migration/src/schema.rs
  type GeneralIds (line 49) | enum GeneralIds {
  function table_auto (line 55) | pub fn table_auto<T: IntoIden + 'static>(name: T) -> TableCreateStatement {
  function pk_auto (line 60) | pub fn pk_auto<T: IntoIden>(name: T) -> ColumnDef {
  function big_pk_auto (line 65) | pub fn big_pk_auto<T: IntoIden>(name: T) -> ColumnDef {
  function pk_uuid (line 70) | pub fn pk_uuid<T: IntoIden>(name: T) -> ColumnDef {
  function char_len (line 74) | pub fn char_len<T: IntoIden>(col: T, length: u32) -> ColumnDef {
  function char_len_null (line 78) | pub fn char_len_null<T: IntoIden>(col: T, length: u32) -> ColumnDef {
  function char_len_uniq (line 82) | pub fn char_len_uniq<T: IntoIden>(col: T, length: u32) -> ColumnDef {
  function char (line 86) | pub fn char<T: IntoIden>(col: T) -> ColumnDef {
  function char_null (line 90) | pub fn char_null<T: IntoIden>(col: T) -> ColumnDef {
  function char_uniq (line 94) | pub fn char_uniq<T: IntoIden>(col: T) -> ColumnDef {
  function string_len (line 98) | pub fn string_len<T: IntoIden>(col: T, length: u32) -> ColumnDef {
  function string_len_null (line 102) | pub fn string_len_null<T: IntoIden>(col: T, length: u32) -> ColumnDef {
  function string_len_uniq (line 106) | pub fn string_len_uniq<T: IntoIden>(col: T, length: u32) -> ColumnDef {
  function string (line 110) | pub fn string<T: IntoIden>(col: T) -> ColumnDef {
  function string_null (line 114) | pub fn string_null<T: IntoIden>(col: T) -> ColumnDef {
  function string_uniq (line 118) | pub fn string_uniq<T: IntoIden>(col: T) -> ColumnDef {
  function text (line 122) | pub fn text<T: IntoIden>(col: T) -> ColumnDef {
  function text_null (line 126) | pub fn text_null<T: IntoIden>(col: T) -> ColumnDef {
  function text_uniq (line 130) | pub fn text_uniq<T: IntoIden>(col: T) -> ColumnDef {
  function tiny_integer (line 134) | pub fn tiny_integer<T: IntoIden>(col: T) -> ColumnDef {
  function tiny_integer_null (line 138) | pub fn tiny_integer_null<T: IntoIden>(col: T) -> ColumnDef {
  function tiny_integer_uniq (line 142) | pub fn tiny_integer_uniq<T: IntoIden>(col: T) -> ColumnDef {
  function small_integer (line 146) | pub fn small_integer<T: IntoIden>(col: T) -> ColumnDef {
  function small_integer_null (line 150) | pub fn small_integer_null<T: IntoIden>(col: T) -> ColumnDef {
  function small_integer_uniq (line 154) | pub fn small_integer_uniq<T: IntoIden>(col: T) -> ColumnDef {
  function integer (line 158) | pub fn integer<T: IntoIden>(col: T) -> ColumnDef {
  function integer_null (line 162) | pub fn integer_null<T: IntoIden>(col: T) -> ColumnDef {
  function integer_uniq (line 166) | pub fn integer_uniq<T: IntoIden>(col: T) -> ColumnDef {
  function big_integer (line 170) | pub fn big_integer<T: IntoIden>(col: T) -> ColumnDef {
  function big_integer_null (line 174) | pub fn big_integer_null<T: IntoIden>(col: T) -> ColumnDef {
  function big_integer_uniq (line 178) | pub fn big_integer_uniq<T: IntoIden>(col: T) -> ColumnDef {
  function tiny_unsigned (line 182) | pub fn tiny_unsigned<T: IntoIden>(col: T) -> ColumnDef {
  function tiny_unsigned_null (line 186) | pub fn tiny_unsigned_null<T: IntoIden>(col: T) -> ColumnDef {
  function tiny_unsigned_uniq (line 190) | pub fn tiny_unsigned_uniq<T: IntoIden>(col: T) -> ColumnDef {
  function small_unsigned (line 194) | pub fn small_unsigned<T: IntoIden>(col: T) -> ColumnDef {
  function small_unsigned_null (line 198) | pub fn small_unsigned_null<T: IntoIden>(col: T) -> ColumnDef {
  function small_unsigned_uniq (line 202) | pub fn small_unsigned_uniq<T: IntoIden>(col: T) -> ColumnDef {
  function unsigned (line 206) | pub fn unsigned<T: IntoIden>(col: T) -> ColumnDef {
  function unsigned_null (line 210) | pub fn unsigned_null<T: IntoIden>(col: T) -> ColumnDef {
  function unsigned_uniq (line 214) | pub fn unsigned_uniq<T: IntoIden>(col: T) -> ColumnDef {
  function big_unsigned (line 218) | pub fn big_unsigned<T: IntoIden>(col: T) -> ColumnDef {
  function big_unsigned_null (line 222) | pub fn big_unsigned_null<T: IntoIden>(col: T) -> ColumnDef {
  function big_unsigned_uniq (line 226) | pub fn big_unsigned_uniq<T: IntoIden>(col: T) -> ColumnDef {
  function float (line 230) | pub fn float<T: IntoIden>(col: T) -> ColumnDef {
  function float_null (line 234) | pub fn float_null<T: IntoIden>(col: T) -> ColumnDef {
  function float_uniq (line 238) | pub fn float_uniq<T: IntoIden>(col: T) -> ColumnDef {
  function double (line 242) | pub fn double<T: IntoIden>(col: T) -> ColumnDef {
  function double_null (line 246) | pub fn double_null<T: IntoIden>(col: T) -> ColumnDef {
  function double_uniq (line 250) | pub fn double_uniq<T: IntoIden>(col: T) -> ColumnDef {
  function decimal_len (line 254) | pub fn decimal_len<T: In
Condensed preview — 1524 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (7,074K chars).
[
  {
    "path": ".gitattributes",
    "chars": 35,
    "preview": "*.html.tera linguist-language=HTML\n"
  },
  {
    "path": ".github/.well-known/funding-manifest-urls",
    "chars": 36,
    "preview": "https://www.sea-ql.org/funding.json\n"
  },
  {
    "path": ".github/FUNDING.yml",
    "chars": 13,
    "preview": "github: SeaQL"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug-report.md",
    "chars": 1931,
    "preview": "---\nname: Bug Report\nabout: Report a bug or design flaw\ntitle: \"\"\nlabels: \"\"\nassignees: \"\"\ntype: Bug\n---\n\n<!--\n\nWelcome!"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 659,
    "preview": "blank_issues_enabled: false\ncontact_links:\n  - name: Q & A\n    url: https://github.com/SeaQL/sea-orm/discussions/new?cat"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature-request.md",
    "chars": 911,
    "preview": "---\nname: Feature Request\nabout: Suggest a new feature for this project\ntitle: \"\"\nlabels: \"\"\nassignees: \"\"\ntype: Feature"
  },
  {
    "path": ".github/workflows/release-bot.yml",
    "chars": 718,
    "preview": "name: Release Bot\n\non:\n  release:\n    types: [published]\n\njobs:\n  comment:\n    runs-on: ubuntu-latest\n    permissions:\n "
  },
  {
    "path": ".github/workflows/rust.yml",
    "chars": 17492,
    "preview": "# GitHub Actions with Conditional Job Running Based on Commit Message\n#\n# ----------------------------------------------"
  },
  {
    "path": ".gitignore",
    "chars": 83,
    "preview": "target\nfiredbg\nCargo.lock\n*.sublime*\n.vscode\n.idea/*\n*/.idea/*\n.env.local\n.DS_Store"
  },
  {
    "path": ".rustfmt.toml",
    "chars": 201,
    "preview": "format_code_in_doc_comments = true\nignore = [\n    # These files are used to test the output of derive macros.\n    # Form"
  },
  {
    "path": ".taplo.toml",
    "chars": 173,
    "preview": "include = [\"**/*.toml\"]\n\n[formatting]\nalign_entries       = true\nallowed_blank_lines = 1\narray_auto_collapse = false\nind"
  },
  {
    "path": "CHANGELOG.md",
    "chars": 130405,
    "preview": "# Changelog\n\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Change"
  },
  {
    "path": "CLAUDE.md",
    "chars": 6796,
    "preview": "# SeaORM Project Guidelines\n\nThis project uses **SeaORM 2.0**. AI models likely have SeaORM 1.0 in their training data -"
  },
  {
    "path": "COMMUNITY.md",
    "chars": 14061,
    "preview": "# Community\n\n## Built with SeaORM\n\nIf you have built an app using SeaORM and want to showcase it, feel free to open a PR"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 4607,
    "preview": "# Contributing to SeaORM\n\nThank you for taking the time to read this. First of all, star ALL our repos!\n\nSeaORM is a com"
  },
  {
    "path": "Cargo.toml",
    "chars": 7136,
    "preview": "[workspace]\nmembers = [\".\", \"sea-orm-macros\", \"sea-orm-codegen\", \"sea-orm-arrow\"]\n\n[package]\nauthors       = [\"Chris Tsa"
  },
  {
    "path": "DEVELOPMENT.md",
    "chars": 1397,
    "preview": "## Use a local SeaORM version\n\nAdd this to your `Cargo.toml` for you local project to test out your changes:\n\n```toml\n[p"
  },
  {
    "path": "LICENSE-APACHE",
    "chars": 10846,
    "preview": "                              Apache License\n                        Version 2.0, January 2004\n                     http"
  },
  {
    "path": "LICENSE-MIT",
    "chars": 1067,
    "preview": "Copyright (c) 2023 Seafire Software Limited\n\nPermission is hereby granted, free of charge, to any\nperson obtaining a cop"
  },
  {
    "path": "README-zh.md",
    "chars": 17196,
    "preview": "<div align=\"center\">\n\n  <img alt=\"SeaORM\" src=\"https://www.sea-ql.org/blog/img/SeaORM 2.0 Banner.png\"/>\n\n  <h1></h1>\n  <"
  },
  {
    "path": "README.md",
    "chars": 22680,
    "preview": "<div align=\"center\">\n\n  <img alt=\"SeaORM\" src=\"https://www.sea-ql.org/blog/img/SeaORM 2.0 Banner.png\"/>\n\n  <h1></h1>\n  <"
  },
  {
    "path": "VERSIONS.md",
    "chars": 472,
    "preview": "# Known good version combo\n\nsea-orm      sea-query    sea-query-derive  sea-query-sqlx    sea-schema\n2.0.0-rc.1   1.0.0-"
  },
  {
    "path": "build-tools/back-async.rs",
    "chars": 52,
    "preview": "cp sea-orm-sync/src/driver/rusqlite.rs ./src/driver/"
  },
  {
    "path": "build-tools/bump.sh",
    "chars": 1384,
    "preview": "#!/bin/bash\nset -e\n\n# Bump `sea-orm-codegen` version\ncd sea-orm-codegen\nsed -i 's/^version.*$/version       = \"'$1'\"/' C"
  },
  {
    "path": "build-tools/clean.sh",
    "chars": 85,
    "preview": "#!/bin/bash\nset -x\n\nfor dir in */; do\n    cd \"$dir\";\n    cargo clean;\n    cd ..;\ndone"
  },
  {
    "path": "build-tools/del-rel-dep.sh",
    "chars": 220,
    "preview": "#!/bin/bash\nset -e\n\nfind examples/ -depth -type f -name '*.toml' -exec sed -i '/^path = \"..\\/..\\/..\\/sea-orm-migration\"/"
  },
  {
    "path": "build-tools/docker-compose.yml",
    "chars": 1963,
    "preview": "version: \"3\"\n\nservices:\n    # \n    # MariaDB\n    # \n\n    mariadb_10_6:\n        image: mariadb:10.6\n        ports:\n      "
  },
  {
    "path": "build-tools/docker-create.sh",
    "chars": 2539,
    "preview": "# Some Common Docker Commands You Might Need (use with caution)\n# \n# Delete all containers\n# $ docker rm -f $(docker ps "
  },
  {
    "path": "build-tools/make-sync.sh",
    "chars": 4903,
    "preview": "rm -rf sea-orm-sync/src\nrm -rf sea-orm-sync/tests\ncp -r src sea-orm-sync\ncp -r tests sea-orm-sync\ncp -r examples/quickst"
  },
  {
    "path": "build-tools/publish.sh",
    "chars": 375,
    "preview": "#!/bin/bash\nset -e\n\n# publish `sea-orm-codegen`\ncd sea-orm-codegen\ncargo publish\ncd ..\n\n# publish `sea-orm-cli`\ncd sea-o"
  },
  {
    "path": "build-tools/readme.sh",
    "chars": 332,
    "preview": "# Run `sh develop/cargo-readme.sh` on project root to generate `README.md` from `src/lib.rs`\n# cargo install cargo-readm"
  },
  {
    "path": "build-tools/rustclippy.sh",
    "chars": 847,
    "preview": "#!/bin/bash\nset -e\nif [ -d ./build-tools ]; then\n    targets=(\n        \"Cargo.toml\"\n        \"sea-orm-cli/Cargo.toml\"\n   "
  },
  {
    "path": "build-tools/rustfmt.sh",
    "chars": 792,
    "preview": "#!/bin/bash\nset -e\ntaplo fmt\nif [ -d ./build-tools ]; then\n    targets=(\n        \"Cargo.toml\"\n        \"sea-orm-cli/Cargo"
  },
  {
    "path": "build-tools/update-strum-macros.sh",
    "chars": 447,
    "preview": "rm -rf sea-orm-macros/src/strum/helpers\nrm -rf sea-orm-macros/src/strum/enum_iter.rs\n\ncp -r ../strum/strum_macros/src/he"
  },
  {
    "path": "changelog/2.0.0-rc.20.md",
    "chars": 1408,
    "preview": "## Release Notes: SeaORM 2.0.0-rc.20\n\n*(since 2.0.0-rc.19)*\n\n### New Features\n\n**Allow more stringy newtypes in `DeriveV"
  },
  {
    "path": "changelog/2.0.0-rc.21.md",
    "chars": 841,
    "preview": "## Release Notes: SeaORM 2.0.0-rc.21\n\n*(since 2.0.0-rc.20)*\n\n### New Features\n\n**Rusqlite / sea-orm-sync** (#2847)\n\n- Ne"
  },
  {
    "path": "changelog/2.0.0-rc.22.md",
    "chars": 1071,
    "preview": "## Release Notes: SeaORM 2.0.0-rc.22\n\n*(since 2.0.0-rc.21)*\n\n### New Features\n\n**`DatabaseExecutor` unified executor typ"
  },
  {
    "path": "changelog/2.0.0-rc.23.md",
    "chars": 1219,
    "preview": "## Release Notes: SeaORM 2.0.0-rc.23\n\n*(since 2.0.0-rc.22)*\n\n### New Features\n\n**`DeriveValueType` implements `IntoActiv"
  },
  {
    "path": "changelog/2.0.0-rc.24.md",
    "chars": 165,
    "preview": "## Release Notes: SeaORM 2.0.0-rc.24\n\n*(since 2.0.0-rc.23)*\n\n### Improvements\n\n- Bumped `sea-query` to 1.0.0-rc.27\n- Upd"
  },
  {
    "path": "changelog/2.0.0-rc.25.md",
    "chars": 544,
    "preview": "## Release Notes: SeaORM 2.0.0-rc.25\n\n*(since 2.0.0-rc.24)*\n\n### Bug Fixes\n\n**Restore value system**\n\nRestored the value"
  },
  {
    "path": "changelog/2.0.0-rc.26.md",
    "chars": 423,
    "preview": "## Release Notes: SeaORM 2.0.0-rc.26\n\n*(since 2.0.0-rc.25)*\n\n### New Features\n\n**PostgreSQL legacy serial primary key op"
  },
  {
    "path": "changelog/2.0.0-rc.27.md",
    "chars": 410,
    "preview": "## Release Notes: SeaORM 2.0.0-rc.27\n\n*(since 2.0.0-rc.26)*\n\n### Improvements\n\n**DeriveValueType implements NotU8**\n\n`De"
  },
  {
    "path": "changelog/2.0.0-rc.28.md",
    "chars": 1324,
    "preview": "## Release Notes: SeaORM 2.0.0-rc.28\n\n*(since 2.0.0-rc.27)*\n\n### New Features\n\n**`sqlx-all` feature in sea-orm-migration"
  },
  {
    "path": "changelog/2.0.0-rc.29.md",
    "chars": 1921,
    "preview": "## Release Notes: SeaORM 2.0.0-rc.29\n\n*(since 2.0.0-rc.28)*\n\n### New Features\n\n**Tracing spans for database operations**"
  },
  {
    "path": "changelog/2.0.0-rc.30.md",
    "chars": 167,
    "preview": "## Release Notes: SeaORM 2.0.0-rc.30\n\n*(since 2.0.0-rc.29)*\n\n### Improvements\n\n**Dependency updates**\n\nBumped `sea-query"
  },
  {
    "path": "changelog/2.0.0-rc.31.md",
    "chars": 1298,
    "preview": "## Release Notes: SeaORM 2.0.0-rc.31\n\n*(since 2.0.0-rc.30)*\n\n### New Features\n\n**`ne_all` for `Condition`**\n\nAdded `ne_a"
  },
  {
    "path": "changelog/2.0.0-rc.32.md",
    "chars": 393,
    "preview": "## Release Notes: SeaORM 2.0.0-rc.32\n\n*(since 2.0.0-rc.31)*\n\n### New Features\n\n**`MigratorTrait` with `self`** (#2806)\n\n"
  },
  {
    "path": "changelog/2.0.0-rc.34.md",
    "chars": 1373,
    "preview": "## Release Notes: SeaORM 2.0.0-rc.34\n\n*(since 2.0.0-rc.32)*\n\n### New Features\n\n**Arrow / Parquet support** (#2957)\n\n- Ex"
  },
  {
    "path": "changelog/2.0.0-rc.35.md",
    "chars": 5860,
    "preview": "## Release Notes: SeaORM 2.0.0-rc.35\n\n*(since 2.0.0-rc.34)*\n\n### New Features\n\n**SQLite Transaction Modes** (#2932)\n\nAdd"
  },
  {
    "path": "changelog/2.0.0-rc.36.md",
    "chars": 1788,
    "preview": "## Release Notes: SeaORM 2.0.0-rc.36\n\n*(since 2.0.0-rc.35)*\n\n### New Features\n\n**Per-Migration Transaction Control** (#2"
  },
  {
    "path": "changelog/2.0.0-rc.37.md",
    "chars": 2352,
    "preview": "## Release Notes: SeaORM 2.0.0-rc.37\n\n*(since 2.0.0-rc.36)*\n\n### New Features\n\n**ER Diagram Generation** (`sea-orm-cli g"
  },
  {
    "path": "examples/actix_example/Cargo.toml",
    "chars": 310,
    "preview": "[package]\nauthors      = [\"Sam Samai <sam@studio2pi.com.au>\"]\nedition      = \"2024\"\nname         = \"sea-orm-actix-4-beta"
  },
  {
    "path": "examples/actix_example/README.md",
    "chars": 726,
    "preview": "![screenshot](Screenshot.png)\n\n# Actix 4 with SeaORM example app\n\n1. Modify the `DATABASE_URL` var in `.env` to point to"
  },
  {
    "path": "examples/actix_example/api/Cargo.toml",
    "chars": 1050,
    "preview": "[package]\nauthors      = [\"Sam Samai <sam@studio2pi.com.au>\"]\nedition      = \"2024\"\nname         = \"actix-example-api\"\np"
  },
  {
    "path": "examples/actix_example/api/src/lib.rs",
    "chars": 6535,
    "preview": "pub mod service;\n\nuse actix_files::Files as Fs;\nuse actix_web::{\n    App, Error, HttpRequest, HttpResponse, HttpServer, "
  },
  {
    "path": "examples/actix_example/api/src/service/mod.rs",
    "chars": 65,
    "preview": "mod mutation;\nmod query;\n\npub use mutation::*;\npub use query::*;\n"
  },
  {
    "path": "examples/actix_example/api/src/service/mutation.rs",
    "chars": 1438,
    "preview": "use ::entity::{post, post::Entity as Post};\nuse sea_orm::*;\n\npub struct Mutation;\n\nimpl Mutation {\n    pub async fn crea"
  },
  {
    "path": "examples/actix_example/api/src/service/query.rs",
    "chars": 759,
    "preview": "use ::entity::{post, post::Entity as Post};\nuse sea_orm::*;\n\npub struct Query;\n\nimpl Query {\n    pub async fn find_post_"
  },
  {
    "path": "examples/actix_example/api/static/css/normalize.css",
    "chars": 7798,
    "preview": "/*! normalize.css v3.0.2 | MIT License | git.io/normalize */\n\n/**\n * 1. Set default font family to sans-serif.\n * 2. Pre"
  },
  {
    "path": "examples/actix_example/api/static/css/skeleton.css",
    "chars": 10009,
    "preview": "/*\n* Skeleton V2.0.4\n* Copyright 2014, Dave Gamache\n* www.getskeleton.com\n* Free to use under the MIT license.\n* https:/"
  },
  {
    "path": "examples/actix_example/api/static/css/style.css",
    "chars": 1036,
    "preview": ".field-error {\n  border: 1px solid #ff0000 !important;\n}\n\n.field-error-flash {\n  color: #ff0000;\n  display: block;\n  mar"
  },
  {
    "path": "examples/actix_example/api/templates/edit.html.tera",
    "chars": 1357,
    "preview": "{% extends \"layout.html.tera\" %} {% block content %}\n<div class=\"row\">\n  <h4>Edit Post</h4>\n  <div class=\"twelve columns"
  },
  {
    "path": "examples/actix_example/api/templates/error/404.html.tera",
    "chars": 215,
    "preview": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\" />\n    <title>404 - tera</title>\n  </head>\n  <body>\n    <h1>40"
  },
  {
    "path": "examples/actix_example/api/templates/index.html.tera",
    "chars": 1266,
    "preview": "{% extends \"layout.html.tera\" %} {% block content %}\n<div class=\"container\">\n  <p><!--Nothing to see here --></p>\n  <h1>"
  },
  {
    "path": "examples/actix_example/api/templates/layout.html.tera",
    "chars": 857,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\" />\n    <title>Actix Example</title>\n    <meta name=\""
  },
  {
    "path": "examples/actix_example/api/templates/new.html.tera",
    "chars": 876,
    "preview": "{% extends \"layout.html.tera\" %} {% block content %}\n<div class=\"row\">\n  <h4>New Post</h4>\n  <form action=\"/\" method=\"po"
  },
  {
    "path": "examples/actix_example/api/tests/crud_tests.rs",
    "chars": 2490,
    "preview": "use actix_example_api::service::{Mutation, Query};\nuse entity::post;\nuse sea_orm::Database;\n\n#[tokio::test]\nasync fn cru"
  },
  {
    "path": "examples/actix_example/entity/Cargo.toml",
    "chars": 363,
    "preview": "[package]\nedition      = \"2024\"\nname         = \"entity\"\npublish      = false\nrust-version = \"1.85.0\"\nversion      = \"0.1"
  },
  {
    "path": "examples/actix_example/entity/src/lib.rs",
    "chars": 96,
    "preview": "//! `SeaORM` Entity, @generated by sea-orm-codegen 2.0.0-rc.16\n\npub mod prelude;\n\npub mod post;\n"
  },
  {
    "path": "examples/actix_example/entity/src/post.rs",
    "chars": 493,
    "preview": "//! `SeaORM` Entity, @generated by sea-orm-codegen 2.0.0-rc.16\n\nuse sea_orm::entity::prelude::*;\nuse serde::{Deserialize"
  },
  {
    "path": "examples/actix_example/entity/src/prelude.rs",
    "chars": 101,
    "preview": "//! `SeaORM` Entity, @generated by sea-orm-codegen 2.0.0-rc.16\n\npub use super::post::Entity as Post;\n"
  },
  {
    "path": "examples/actix_example/migration/Cargo.toml",
    "chars": 609,
    "preview": "[package]\nedition      = \"2024\"\nname         = \"migration\"\npublish      = false\nrust-version = \"1.85.0\"\nversion      = \""
  },
  {
    "path": "examples/actix_example/migration/README.md",
    "chars": 730,
    "preview": "# Running Migrator CLI\n\n- Apply all pending migrations\n    ```sh\n    cargo run\n    ```\n    ```sh\n    cargo run -- up\n   "
  },
  {
    "path": "examples/actix_example/migration/src/lib.rs",
    "chars": 415,
    "preview": "pub use sea_orm_migration::prelude::*;\n\nmod m20220120_000001_create_post_table;\nmod m20220120_000002_seed_posts;\n\npub st"
  },
  {
    "path": "examples/actix_example/migration/src/m20220120_000001_create_post_table.rs",
    "chars": 761,
    "preview": "use sea_orm_migration::{prelude::*, schema::*};\n\n#[derive(DeriveMigrationName)]\npub struct Migration;\n\n#[async_trait::as"
  },
  {
    "path": "examples/actix_example/migration/src/m20220120_000002_seed_posts.rs",
    "chars": 1267,
    "preview": "use entity::post;\nuse sea_orm::{ActiveModelTrait, ColumnTrait, EntityTrait, QueryFilter, Set};\nuse sea_orm_migration::pr"
  },
  {
    "path": "examples/actix_example/migration/src/main.rs",
    "chars": 116,
    "preview": "use sea_orm_migration::prelude::*;\n\n#[tokio::main]\nasync fn main() {\n    cli::run_cli(migration::Migrator).await;\n}\n"
  },
  {
    "path": "examples/actix_example/src/main.rs",
    "chars": 45,
    "preview": "fn main() {\n    actix_example_api::main();\n}\n"
  },
  {
    "path": "examples/axum_example/Cargo.toml",
    "chars": 305,
    "preview": "[package]\nauthors      = [\"Yoshiera Huang <huangjasper@126.com>\"]\nedition      = \"2024\"\nname         = \"sea-orm-axum-exa"
  },
  {
    "path": "examples/axum_example/README.md",
    "chars": 591,
    "preview": "![screenshot](Screenshot.png)\n\n# Axum with SeaORM example app\n\n1. Modify the `DATABASE_URL` var in `.env` to point to yo"
  },
  {
    "path": "examples/axum_example/api/Cargo.toml",
    "chars": 1102,
    "preview": "[package]\nauthors      = [\"Yoshiera Huang <huangjasper@126.com>\"]\nedition      = \"2024\"\nname         = \"axum-example-api"
  },
  {
    "path": "examples/axum_example/api/src/flash.rs",
    "chars": 1264,
    "preview": "use axum::http::{HeaderMap, HeaderValue, StatusCode, header};\nuse serde::{Deserialize, Serialize, de::DeserializeOwned};"
  },
  {
    "path": "examples/axum_example/api/src/lib.rs",
    "chars": 5789,
    "preview": "mod flash;\npub mod service;\n\nuse axum::{\n    Router,\n    extract::{Form, Path, Query, State},\n    http::StatusCode,\n    "
  },
  {
    "path": "examples/axum_example/api/src/service/mod.rs",
    "chars": 65,
    "preview": "mod mutation;\nmod query;\n\npub use mutation::*;\npub use query::*;\n"
  },
  {
    "path": "examples/axum_example/api/src/service/mutation.rs",
    "chars": 1438,
    "preview": "use ::entity::{post, post::Entity as Post};\nuse sea_orm::*;\n\npub struct Mutation;\n\nimpl Mutation {\n    pub async fn crea"
  },
  {
    "path": "examples/axum_example/api/src/service/query.rs",
    "chars": 759,
    "preview": "use ::entity::{post, post::Entity as Post};\nuse sea_orm::*;\n\npub struct Query;\n\nimpl Query {\n    pub async fn find_post_"
  },
  {
    "path": "examples/axum_example/api/static/css/normalize.css",
    "chars": 7798,
    "preview": "/*! normalize.css v3.0.2 | MIT License | git.io/normalize */\n\n/**\n * 1. Set default font family to sans-serif.\n * 2. Pre"
  },
  {
    "path": "examples/axum_example/api/static/css/skeleton.css",
    "chars": 10009,
    "preview": "/*\n* Skeleton V2.0.4\n* Copyright 2014, Dave Gamache\n* www.getskeleton.com\n* Free to use under the MIT license.\n* https:/"
  },
  {
    "path": "examples/axum_example/api/static/css/style.css",
    "chars": 1036,
    "preview": ".field-error {\n  border: 1px solid #ff0000 !important;\n}\n\n.field-error-flash {\n  color: #ff0000;\n  display: block;\n  mar"
  },
  {
    "path": "examples/axum_example/api/templates/edit.html.tera",
    "chars": 1357,
    "preview": "{% extends \"layout.html.tera\" %} {% block content %}\n<div class=\"row\">\n  <h4>Edit Post</h4>\n  <div class=\"twelve columns"
  },
  {
    "path": "examples/axum_example/api/templates/error/404.html.tera",
    "chars": 215,
    "preview": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\" />\n    <title>404 - tera</title>\n  </head>\n  <body>\n    <h1>40"
  },
  {
    "path": "examples/axum_example/api/templates/index.html.tera",
    "chars": 1266,
    "preview": "{% extends \"layout.html.tera\" %} {% block content %}\n<div class=\"container\">\n  <p><!--Nothing to see here --></p>\n  <h1>"
  },
  {
    "path": "examples/axum_example/api/templates/layout.html.tera",
    "chars": 860,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\" />\n    <title>Axum Example</title>\n    <meta name=\"d"
  },
  {
    "path": "examples/axum_example/api/templates/new.html.tera",
    "chars": 876,
    "preview": "{% extends \"layout.html.tera\" %} {% block content %}\n<div class=\"row\">\n  <h4>New Post</h4>\n  <form action=\"/\" method=\"po"
  },
  {
    "path": "examples/axum_example/api/tests/crud_tests.rs",
    "chars": 2489,
    "preview": "use axum_example_api::service::{Mutation, Query};\nuse entity::post;\nuse sea_orm::Database;\n\n#[tokio::test]\nasync fn crud"
  },
  {
    "path": "examples/axum_example/entity/Cargo.toml",
    "chars": 363,
    "preview": "[package]\nedition      = \"2024\"\nname         = \"entity\"\npublish      = false\nrust-version = \"1.85.0\"\nversion      = \"0.1"
  },
  {
    "path": "examples/axum_example/entity/src/lib.rs",
    "chars": 96,
    "preview": "//! `SeaORM` Entity, @generated by sea-orm-codegen 2.0.0-rc.16\n\npub mod prelude;\n\npub mod post;\n"
  },
  {
    "path": "examples/axum_example/entity/src/post.rs",
    "chars": 493,
    "preview": "//! `SeaORM` Entity, @generated by sea-orm-codegen 2.0.0-rc.16\n\nuse sea_orm::entity::prelude::*;\nuse serde::{Deserialize"
  },
  {
    "path": "examples/axum_example/entity/src/prelude.rs",
    "chars": 101,
    "preview": "//! `SeaORM` Entity, @generated by sea-orm-codegen 2.0.0-rc.16\n\npub use super::post::Entity as Post;\n"
  },
  {
    "path": "examples/axum_example/migration/Cargo.toml",
    "chars": 612,
    "preview": "[package]\nedition      = \"2024\"\nname         = \"migration\"\npublish      = false\nrust-version = \"1.85.0\"\nversion      = \""
  },
  {
    "path": "examples/axum_example/migration/README.md",
    "chars": 730,
    "preview": "# Running Migrator CLI\n\n- Apply all pending migrations\n    ```sh\n    cargo run\n    ```\n    ```sh\n    cargo run -- up\n   "
  },
  {
    "path": "examples/axum_example/migration/src/lib.rs",
    "chars": 415,
    "preview": "pub use sea_orm_migration::prelude::*;\n\nmod m20220120_000001_create_post_table;\nmod m20220120_000002_seed_posts;\n\npub st"
  },
  {
    "path": "examples/axum_example/migration/src/m20220120_000001_create_post_table.rs",
    "chars": 761,
    "preview": "use sea_orm_migration::{prelude::*, schema::*};\n\n#[derive(DeriveMigrationName)]\npub struct Migration;\n\n#[async_trait::as"
  },
  {
    "path": "examples/axum_example/migration/src/m20220120_000002_seed_posts.rs",
    "chars": 1267,
    "preview": "use entity::post;\nuse sea_orm::{ActiveModelTrait, ColumnTrait, EntityTrait, QueryFilter, Set};\nuse sea_orm_migration::pr"
  },
  {
    "path": "examples/axum_example/migration/src/main.rs",
    "chars": 116,
    "preview": "use sea_orm_migration::prelude::*;\n\n#[tokio::main]\nasync fn main() {\n    cli::run_cli(migration::Migrator).await;\n}\n"
  },
  {
    "path": "examples/axum_example/src/main.rs",
    "chars": 44,
    "preview": "fn main() {\n    axum_example_api::main();\n}\n"
  },
  {
    "path": "examples/basic/Cargo.toml",
    "chars": 400,
    "preview": "[workspace]\n# A separate workspace\n\n[package]\nedition      = \"2024\"\nname         = \"sea-orm-example-basic\"\npublish      "
  },
  {
    "path": "examples/basic/Readme.md",
    "chars": 9999,
    "preview": "# SeaORM MySQL example\n\nPrepare:\n\nSetup a test database and configure the connection string in `main.rs`.\nRun `bakery.sq"
  },
  {
    "path": "examples/basic/bakery.sql",
    "chars": 1480,
    "preview": "DROP TABLE IF EXISTS `cake`;\n\nCREATE TABLE `cake` (\n  `id` int NOT NULL AUTO_INCREMENT,\n  `name` varchar(255) NOT NULL,\n"
  },
  {
    "path": "examples/basic/src/entity/cake.rs",
    "chars": 555,
    "preview": "//! SeaORM Entity. Generated by sea-orm-codegen 0.1.0\n\nuse sea_orm::entity::prelude::*;\n\n#[sea_orm::model]\n#[derive(Clon"
  },
  {
    "path": "examples/basic/src/entity/cake_filling.rs",
    "chars": 813,
    "preview": "//! SeaORM Entity. Generated by sea-orm-codegen 0.1.0\n\nuse sea_orm::entity::prelude::*;\n\n#[sea_orm::model]\n#[derive(Clon"
  },
  {
    "path": "examples/basic/src/entity/filling.rs",
    "chars": 425,
    "preview": "//! SeaORM Entity. Generated by sea-orm-codegen 0.1.0\n\nuse sea_orm::entity::prelude::*;\n\n#[sea_orm::model]\n#[derive(Clon"
  },
  {
    "path": "examples/basic/src/entity/fruit.rs",
    "chars": 460,
    "preview": "//! SeaORM Entity. Generated by sea-orm-codegen 0.1.0\n\nuse sea_orm::entity::prelude::*;\n\n#[sea_orm::model]\n#[derive(Clon"
  },
  {
    "path": "examples/basic/src/entity/mod.rs",
    "chars": 243,
    "preview": "pub mod cake;\npub mod cake_filling;\npub mod filling;\npub mod fruit;\n\npub mod sea_orm_active_enums;\n\npub use cake::Entity"
  },
  {
    "path": "examples/basic/src/entity/sea_orm_active_enums.rs",
    "chars": 417,
    "preview": "//! SeaORM's active enums.\n\nuse sea_orm::entity::prelude::*;\n\n/// Tea active enum\n#[derive(Debug, Clone, PartialEq, Eq, "
  },
  {
    "path": "examples/basic/src/main.rs",
    "chars": 556,
    "preview": "//! Basic sea-orm example.\n\n#![deny(missing_docs)]\n\nuse sea_orm::Database;\n\nmod entity;\nmod mutation;\nmod query;\n\nuse en"
  },
  {
    "path": "examples/basic/src/mutation.rs",
    "chars": 2132,
    "preview": "use super::*;\nuse sea_orm::{DbConn, entity::*, error::*};\n\npub async fn all_about_mutation(db: &DbConn) -> Result<(), Db"
  },
  {
    "path": "examples/basic/src/query.rs",
    "chars": 8621,
    "preview": "use super::*;\nuse sea_orm::{DbConn, FromQueryResult, entity::*, error::*, query::*};\n\npub async fn all_about_query(db: &"
  },
  {
    "path": "examples/graphql_example/.gitignore",
    "chars": 16,
    "preview": "db\ndb-shm\ndb-wal"
  },
  {
    "path": "examples/graphql_example/Cargo.toml",
    "chars": 414,
    "preview": "[package]\nauthors      = [\"Aaron Leopold <aaronleopold1221@gmail.com>\"]\nedition      = \"2024\"\nname         = \"sea-orm-gr"
  },
  {
    "path": "examples/graphql_example/README.md",
    "chars": 522,
    "preview": "![screenshot](Screenshot1.png)\n\n![screenshot](Screenshot2.png)\n\n# Axum-GraphQL with SeaORM example app\n\n1. Modify the `D"
  },
  {
    "path": "examples/graphql_example/api/Cargo.toml",
    "chars": 750,
    "preview": "[package]\nauthors      = [\"Aaron Leopold <aaronleopold1221@gmail.com>\"]\nedition      = \"2024\"\nname         = \"graphql-ex"
  },
  {
    "path": "examples/graphql_example/api/src/db.rs",
    "chars": 444,
    "preview": "use sea_orm::DatabaseConnection;\n\npub struct Database {\n    pub connection: DatabaseConnection,\n}\n\nimpl Database {\n    p"
  },
  {
    "path": "examples/graphql_example/api/src/graphql/mod.rs",
    "chars": 49,
    "preview": "pub mod mutation;\npub mod query;\npub mod schema;\n"
  },
  {
    "path": "examples/graphql_example/api/src/graphql/mutation/mod.rs",
    "chars": 257,
    "preview": "pub mod note;\n\npub use note::NoteMutation;\n\n// Add your other ones here to create a unified Mutation object\n// e.x. Muta"
  },
  {
    "path": "examples/graphql_example/api/src/graphql/mutation/note.rs",
    "chars": 1573,
    "preview": "use crate::service::Mutation;\nuse async_graphql::{Context, InputObject, Object, Result, SimpleObject};\nuse entity::note;"
  },
  {
    "path": "examples/graphql_example/api/src/graphql/query/mod.rs",
    "chars": 233,
    "preview": "pub mod note;\n\npub use note::NoteQuery;\n\n// Add your other ones here to create a unified Query object\n// e.x. Query(Note"
  },
  {
    "path": "examples/graphql_example/api/src/graphql/query/note.rs",
    "chars": 763,
    "preview": "use crate::service::Query;\nuse async_graphql::{Context, Object, Result};\nuse entity::note;\n\nuse crate::db::Database;\n\n#["
  },
  {
    "path": "examples/graphql_example/api/src/graphql/schema.rs",
    "chars": 584,
    "preview": "use async_graphql;\nuse async_graphql::{EmptySubscription, Schema};\nuse migration::{Migrator, MigratorTrait};\n\nuse crate:"
  },
  {
    "path": "examples/graphql_example/api/src/lib.rs",
    "chars": 1148,
    "preview": "mod db;\nmod graphql;\npub mod service;\n\nuse async_graphql::http::{GraphQLPlaygroundConfig, playground_source};\nuse async_"
  },
  {
    "path": "examples/graphql_example/api/src/service/mod.rs",
    "chars": 65,
    "preview": "mod mutation;\nmod query;\n\npub use mutation::*;\npub use query::*;\n"
  },
  {
    "path": "examples/graphql_example/api/src/service/mutation.rs",
    "chars": 1592,
    "preview": "use entity::{note, note::Entity as Note};\nuse sea_orm::{DbConn, DbErr, DeleteResult, entity::*};\n\npub struct Mutation;\n\n"
  },
  {
    "path": "examples/graphql_example/api/src/service/query.rs",
    "chars": 935,
    "preview": "use entity::{note, note::Entity as Note};\nuse sea_orm::{DbConn, DbErr, EntityTrait, PaginatorTrait, QueryOrder};\n\npub st"
  },
  {
    "path": "examples/graphql_example/api/tests/crud_tests.rs",
    "chars": 2327,
    "preview": "use entity::note;\nuse graphql_example_api::service::{Mutation, Query};\nuse sea_orm::{ConnectionTrait, Database, Schema};"
  },
  {
    "path": "examples/graphql_example/entity/Cargo.toml",
    "chars": 409,
    "preview": "[package]\nedition      = \"2024\"\nname         = \"entity\"\npublish      = false\nrust-version = \"1.85.0\"\nversion      = \"0.1"
  },
  {
    "path": "examples/graphql_example/entity/src/lib.rs",
    "chars": 14,
    "preview": "pub mod note;\n"
  },
  {
    "path": "examples/graphql_example/entity/src/note.rs",
    "chars": 668,
    "preview": "use async_graphql::*;\nuse sea_orm::entity::prelude::*;\nuse serde::{Deserialize, Serialize};\n\n#[derive(Clone, Debug, Part"
  },
  {
    "path": "examples/graphql_example/migration/Cargo.toml",
    "chars": 610,
    "preview": "[package]\nedition      = \"2024\"\nname         = \"migration\"\npublish      = false\nrust-version = \"1.85.0\"\nversion      = \""
  },
  {
    "path": "examples/graphql_example/migration/README.md",
    "chars": 730,
    "preview": "# Running Migrator CLI\n\n- Apply all pending migrations\n    ```sh\n    cargo run\n    ```\n    ```sh\n    cargo run -- up\n   "
  },
  {
    "path": "examples/graphql_example/migration/src/lib.rs",
    "chars": 415,
    "preview": "pub use sea_orm_migration::prelude::*;\n\nmod m20220120_000001_create_note_table;\nmod m20220120_000002_seed_notes;\n\npub st"
  },
  {
    "path": "examples/graphql_example/migration/src/m20220120_000001_create_note_table.rs",
    "chars": 404,
    "preview": "use entity::note;\nuse sea_orm_migration::prelude::*;\n\n#[derive(DeriveMigrationName)]\npub struct Migration;\n\n#[async_trai"
  },
  {
    "path": "examples/graphql_example/migration/src/m20220120_000002_seed_notes.rs",
    "chars": 1267,
    "preview": "use entity::note;\nuse sea_orm::{ActiveModelTrait, ColumnTrait, EntityTrait, QueryFilter, Set};\nuse sea_orm_migration::pr"
  },
  {
    "path": "examples/graphql_example/migration/src/main.rs",
    "chars": 116,
    "preview": "use sea_orm_migration::prelude::*;\n\n#[tokio::main]\nasync fn main() {\n    cli::run_cli(migration::Migrator).await;\n}\n"
  },
  {
    "path": "examples/graphql_example/src/main.rs",
    "chars": 47,
    "preview": "fn main() {\n    graphql_example_api::main();\n}\n"
  },
  {
    "path": "examples/jsonrpsee_example/Cargo.toml",
    "chars": 356,
    "preview": "[package]\nedition      = \"2024\"\nname         = \"sea-orm-jsonrpsee-example\"\npublish      = false\nrust-version = \"1.85.0\"\n"
  },
  {
    "path": "examples/jsonrpsee_example/README.md",
    "chars": 1647,
    "preview": "# jsonrpsee with SeaORM example app\n\n1. Modify the `DATABASE_URL` var in `.env` to point to your chosen database\n\n1. Tur"
  },
  {
    "path": "examples/jsonrpsee_example/api/Cargo.toml",
    "chars": 854,
    "preview": "[package]\nedition      = \"2024\"\nname         = \"jsonrpsee-example-api\"\npublish      = false\nrust-version = \"1.85.0\"\nvers"
  },
  {
    "path": "examples/jsonrpsee_example/api/src/lib.rs",
    "chars": 4185,
    "preview": "pub mod service;\n\nuse std::env;\n\nuse entity::post;\nuse jsonrpsee::core::{RpcResult, async_trait};\nuse jsonrpsee::proc_ma"
  },
  {
    "path": "examples/jsonrpsee_example/api/src/service/mod.rs",
    "chars": 65,
    "preview": "mod mutation;\nmod query;\n\npub use mutation::*;\npub use query::*;\n"
  },
  {
    "path": "examples/jsonrpsee_example/api/src/service/mutation.rs",
    "chars": 1438,
    "preview": "use ::entity::{post, post::Entity as Post};\nuse sea_orm::*;\n\npub struct Mutation;\n\nimpl Mutation {\n    pub async fn crea"
  },
  {
    "path": "examples/jsonrpsee_example/api/src/service/query.rs",
    "chars": 759,
    "preview": "use ::entity::{post, post::Entity as Post};\nuse sea_orm::*;\n\npub struct Query;\n\nimpl Query {\n    pub async fn find_post_"
  },
  {
    "path": "examples/jsonrpsee_example/api/tests/crud_tests.rs",
    "chars": 2494,
    "preview": "use entity::post;\nuse jsonrpsee_example_api::service::{Mutation, Query};\nuse sea_orm::Database;\n\n#[tokio::test]\nasync fn"
  },
  {
    "path": "examples/jsonrpsee_example/entity/Cargo.toml",
    "chars": 363,
    "preview": "[package]\nedition      = \"2024\"\nname         = \"entity\"\npublish      = false\nrust-version = \"1.85.0\"\nversion      = \"0.1"
  },
  {
    "path": "examples/jsonrpsee_example/entity/src/lib.rs",
    "chars": 96,
    "preview": "//! `SeaORM` Entity, @generated by sea-orm-codegen 2.0.0-rc.16\n\npub mod prelude;\n\npub mod post;\n"
  },
  {
    "path": "examples/jsonrpsee_example/entity/src/post.rs",
    "chars": 460,
    "preview": "//! `SeaORM` Entity, @generated by sea-orm-codegen 2.0.0-rc.16\n\nuse sea_orm::entity::prelude::*;\nuse serde::{Deserialize"
  },
  {
    "path": "examples/jsonrpsee_example/entity/src/prelude.rs",
    "chars": 101,
    "preview": "//! `SeaORM` Entity, @generated by sea-orm-codegen 2.0.0-rc.16\n\npub use super::post::Entity as Post;\n"
  },
  {
    "path": "examples/jsonrpsee_example/migration/Cargo.toml",
    "chars": 610,
    "preview": "[package]\nedition      = \"2024\"\nname         = \"migration\"\npublish      = false\nrust-version = \"1.85.0\"\nversion      = \""
  },
  {
    "path": "examples/jsonrpsee_example/migration/README.md",
    "chars": 730,
    "preview": "# Running Migrator CLI\n\n- Apply all pending migrations\n    ```sh\n    cargo run\n    ```\n    ```sh\n    cargo run -- up\n   "
  },
  {
    "path": "examples/jsonrpsee_example/migration/src/lib.rs",
    "chars": 415,
    "preview": "pub use sea_orm_migration::prelude::*;\n\nmod m20220120_000001_create_post_table;\nmod m20220120_000002_seed_posts;\n\npub st"
  },
  {
    "path": "examples/jsonrpsee_example/migration/src/m20220120_000001_create_post_table.rs",
    "chars": 761,
    "preview": "use sea_orm_migration::{prelude::*, schema::*};\n\n#[derive(DeriveMigrationName)]\npub struct Migration;\n\n#[async_trait::as"
  },
  {
    "path": "examples/jsonrpsee_example/migration/src/m20220120_000002_seed_posts.rs",
    "chars": 1267,
    "preview": "use entity::post;\nuse sea_orm::{ActiveModelTrait, ColumnTrait, EntityTrait, QueryFilter, Set};\nuse sea_orm_migration::pr"
  },
  {
    "path": "examples/jsonrpsee_example/migration/src/main.rs",
    "chars": 116,
    "preview": "use sea_orm_migration::prelude::*;\n\n#[tokio::main]\nasync fn main() {\n    cli::run_cli(migration::Migrator).await;\n}\n"
  },
  {
    "path": "examples/jsonrpsee_example/src/main.rs",
    "chars": 49,
    "preview": "fn main() {\n    jsonrpsee_example_api::main();\n}\n"
  },
  {
    "path": "examples/loco_example/.cargo/config.toml",
    "chars": 70,
    "preview": "[alias]\nloco       = \"run --\"\nplayground = \"run --example playground\"\n"
  },
  {
    "path": "examples/loco_example/.dockerignore",
    "chars": 48,
    "preview": "target\ndockerfile\n.dockerignore\n.git\n.gitignore\n"
  },
  {
    "path": "examples/loco_example/.gitignore",
    "chars": 460,
    "preview": "**/config/local.yaml\n**/config/*.local.yaml\n\n# Generated by Cargo\n# will have compiled files and executables\ndebug/\ntarg"
  },
  {
    "path": "examples/loco_example/.rustfmt.toml",
    "chars": 215,
    "preview": "comment_width        = 80\nformat_strings       = true\ngroup_imports        = \"StdExternalCrate\"\nimports_granularity  = \""
  },
  {
    "path": "examples/loco_example/Cargo.lock",
    "chars": 138251,
    "preview": "# This file is automatically @generated by Cargo.\n# It is not intended for manual editing.\nversion = 4\n\n[[package]]\nname"
  },
  {
    "path": "examples/loco_example/Cargo.toml",
    "chars": 1376,
    "preview": "[workspace]\n\n[package]\nedition      = \"2024\"\nname         = \"todolist\"\nrust-version = \"1.85.0\"\nversion      = \"0.1.0\"\n\n#"
  },
  {
    "path": "examples/loco_example/README.md",
    "chars": 3662,
    "preview": "![screenshot](Screenshot.png)\n\n> Adapted from https://github.com/loco-rs/todo-list\n\n# Loco with SeaORM example todo list"
  },
  {
    "path": "examples/loco_example/config/development.yaml",
    "chars": 3025,
    "preview": "# Loco configuration file documentation\n\n# Application logging configuration\nlogger:\n  # Enable or disable logging.\n  en"
  },
  {
    "path": "examples/loco_example/dockerfile",
    "chars": 455,
    "preview": "FROM rust:1.74-slim as builder\n\nWORKDIR /usr/src/\n\nCOPY . .\n\nRUN cargo build --release\n\nFROM debian:bookworm-slim\n\nWORKD"
  },
  {
    "path": "examples/loco_example/frontend/.eslintrc.cjs",
    "chars": 526,
    "preview": "module.exports = {\n  root: true,\n  env: { browser: true, es2020: true },\n  extends: [\n    'eslint:recommended',\n    'plu"
  },
  {
    "path": "examples/loco_example/frontend/.gitignore",
    "chars": 278,
    "preview": "# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\npnpm-debug.log*\nlerna-debug.log*\n\nnode_modules\ndist\ndis"
  },
  {
    "path": "examples/loco_example/frontend/index.html",
    "chars": 361,
    "preview": "<!doctype html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"UTF-8\" />\n    <link rel=\"icon\" type=\"image/svg+xml\" href=\"/"
  },
  {
    "path": "examples/loco_example/frontend/package.json",
    "chars": 729,
    "preview": "{\n  \"name\": \"frontend\",\n  \"private\": true,\n  \"version\": \"0.0.0\",\n  \"type\": \"module\",\n  \"scripts\": {\n    \"dev\": \"vite\",\n "
  },
  {
    "path": "examples/loco_example/frontend/src/App.css",
    "chars": 445,
    "preview": "#root {\n  max-width: 1280px;\n  margin: 0 auto;\n  text-align: center;\n}\n\n.logo {\n  height: 10em;\n  padding: 1.5em;\n  will"
  },
  {
    "path": "examples/loco_example/frontend/src/App.jsx",
    "chars": 3332,
    "preview": "import {\n  useQuery,\n  useMutation,\n  useQueryClient,\n} from 'react-query'\nimport axios from 'axios';\nimport './App.css'"
  },
  {
    "path": "examples/loco_example/frontend/src/index.css",
    "chars": 1161,
    "preview": ":root {\n  font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;\n  line-height: 1.5;\n  font-weight: 400;\n\n"
  },
  {
    "path": "examples/loco_example/frontend/src/main.jsx",
    "chars": 513,
    "preview": "import React from 'react'\nimport ReactDOM from 'react-dom/client'\nimport { BrowserRouter } from \"react-router-dom\";\nimpo"
  },
  {
    "path": "examples/loco_example/frontend/vite.config.js",
    "chars": 317,
    "preview": "import { defineConfig } from 'vite'\nimport react from '@vitejs/plugin-react'\n\n// https://vitejs.dev/config/\nexport defau"
  },
  {
    "path": "examples/loco_example/migration/Cargo.toml",
    "chars": 694,
    "preview": "[package]\nedition      = \"2024\"\nname         = \"migration\"\npublish      = false\nrust-version = \"1.85.0\"\nversion      = \""
  },
  {
    "path": "examples/loco_example/migration/README.md",
    "chars": 829,
    "preview": "# Running Migrator CLI\n\n- Generate a new migration file\n    ```sh\n    cargo run -- migrate generate MIGRATION_NAME\n    `"
  },
  {
    "path": "examples/loco_example/migration/src/lib.rs",
    "chars": 346,
    "preview": "#![allow(elided_lifetimes_in_paths)]\n#![allow(clippy::wildcard_imports)]\npub use sea_orm_migration::prelude::*;\n\nmod m20"
  },
  {
    "path": "examples/loco_example/migration/src/m20231103_114510_notes.rs",
    "chars": 707,
    "preview": "use sea_orm_migration::{prelude::*, schema::*};\n\n#[derive(DeriveMigrationName)]\npub struct Migration;\n\n#[async_trait::as"
  },
  {
    "path": "examples/loco_example/migration/src/main.rs",
    "chars": 116,
    "preview": "use sea_orm_migration::prelude::*;\n\n#[tokio::main]\nasync fn main() {\n    cli::run_cli(migration::Migrator).await;\n}\n"
  },
  {
    "path": "examples/loco_example/src/app.rs",
    "chars": 1415,
    "preview": "use std::path::Path;\n\nuse async_trait::async_trait;\nuse loco_rs::{\n    Result,\n    app::{AppContext, Hooks},\n    bgworke"
  },
  {
    "path": "examples/loco_example/src/bin/main.rs",
    "chars": 175,
    "preview": "use loco_rs::cli;\nuse migration::Migrator;\nuse todolist::app::App;\n\n#[tokio::main]\nasync fn main() -> eyre::Result<()> {"
  },
  {
    "path": "examples/loco_example/src/controllers/mod.rs",
    "chars": 15,
    "preview": "pub mod notes;\n"
  },
  {
    "path": "examples/loco_example/src/controllers/notes.rs",
    "chars": 1997,
    "preview": "#![allow(clippy::missing_errors_doc)]\n#![allow(clippy::unnecessary_struct_initialization)]\n#![allow(clippy::unused_async"
  },
  {
    "path": "examples/loco_example/src/fixtures/notes.yaml",
    "chars": 284,
    "preview": "---\n- id: 1\n  title: Loco note 1\n  content: Loco note 1 content\n  created_at: \"2023-11-12T12:34:56.789\"\n  updated_at: \"2"
  },
  {
    "path": "examples/loco_example/src/lib.rs",
    "chars": 50,
    "preview": "pub mod app;\npub mod controllers;\npub mod models;\n"
  },
  {
    "path": "examples/loco_example/src/models/_entities/mod.rs",
    "chars": 91,
    "preview": "//! `SeaORM` Entity. Generated by sea-orm-codegen 0.12.4\n\npub mod prelude;\n\npub mod notes;\n"
  },
  {
    "path": "examples/loco_example/src/models/_entities/notes.rs",
    "chars": 458,
    "preview": "//! `SeaORM` Entity, @generated by sea-orm-codegen 2.0.0-rc.10\n\nuse sea_orm::entity::prelude::*;\nuse serde::{Deserialize"
  },
  {
    "path": "examples/loco_example/src/models/_entities/prelude.rs",
    "chars": 97,
    "preview": "//! `SeaORM` Entity. Generated by sea-orm-codegen 0.12.4\n\npub use super::notes::Entity as Notes;\n"
  },
  {
    "path": "examples/loco_example/src/models/mod.rs",
    "chars": 34,
    "preview": "pub mod _entities;\npub mod notes;\n"
  },
  {
    "path": "examples/loco_example/src/models/notes.rs",
    "chars": 184,
    "preview": "use sea_orm::entity::prelude::*;\n\nuse super::_entities::notes::ActiveModel;\n\nimpl ActiveModelBehavior for ActiveModel {\n"
  },
  {
    "path": "examples/loco_example/tests/mod.rs",
    "chars": 37,
    "preview": "mod models;\nmod requests;\nmod tasks;\n"
  },
  {
    "path": "examples/loco_example/tests/models/mod.rs",
    "chars": 1,
    "preview": "\n"
  },
  {
    "path": "examples/loco_example/tests/requests/mod.rs",
    "chars": 11,
    "preview": "mod notes;\n"
  }
]

// ... and 1324 more files (download for full content)

About this extraction

This page contains the full source code of the SeaQL/sea-orm GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1524 files (6.3 MB), approximately 1.7M tokens, and a symbol index with 8574 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!