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.rsinstead 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)--serde-skip-deserializing-primary-key: generate entity model with primary key field labeled as#[serde(skip_deserializing)]--serde-skip-hidden-column: generate entity model with hidden column (column name starts with_) field labeled as#[serde(skip)]
--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)--model-extra-derives: append extra derive macros to the generated model struct--model-extra-attributes: append extra attributes to generated model struct
# Generate entity files of database `bakery` to `entity/src`
sea-orm-cli generate entity -u protocol://username:password@localhost/bakery -o entity/src