Using sea-orm-cli
First, install sea-orm-cli
with cargo
.
cargo install sea-orm-cli
Configure Environment
Set DATABASE_URL
in your environment, or create a .env
file in your project root. Specify your database connection.
.env
DATABASE_URL=protocol://username:password@localhost/database
Getting Help
Use -h
flag on any CLI command or subcommand for help.
# List all available commands
sea-orm-cli -h
# List all subcommands available in `generate` command
sea-orm-cli generate -h
# Show how to use `generate entity` subcommand
sea-orm-cli generate entity -h
Generating Entity Files
Discover all tables in a database and generate a corresponding SeaORM entity file for each table.
Supported databases:
- MySQL
- PostgreSQL
- SQLite
Command line options:
-u
/--database-url
: database URL (default: DATABASE_URL specified in ENV)-s
/--database-schema
: database schema (default: DATABASE_SCHEMA specified in ENV)- for MySQL & SQLite, this argument is ignored
- for PostgreSQL, this argument is optional with default value 'public'
-o
/--output-dir
: entity file output directory (default: current directory)-v
/--verbose
: print debug messages-l
/--lib
: generate index file aslib.rs
instead ofmod.rs
--include-hidden-tables
: generate entity files from hidden tables (tables with names starting with an underscore are hidden and ignored by default)--ignore-tables
: skip generating entity file for specified tables (default:seaql_migrations
)--compact-format
: generate entity file of compact format (default: true)--expanded-format
: generate entity file of expanded format--with-serde
: automatically derive serde Serialize / Deserialize traits for the entity (none
,serialize
,deserialize
,both
) (default:none
)--date-time-crate
: the datetime crate to use for generating entities (chrono
,time
) (default:chrono
)--max-connections
: maximum number of database connections to be initialized in the connection pool (default:1
)
# Generate entity files of database `bakery` to `entity/src`
sea-orm-cli generate entity -u protocol://username:password@localhost/bakery -o entity/src