Database schema and ORM for zino.
Supported database drivers
The following optional features are available:
| Feature flag | Description | Default? |
|---|---|---|
orm-mariadb |
Enables the MariaDB database driver. | No |
orm-mysql |
Enables the MySQL database driver. | No |
orm-postgres |
Enables the PostgreSQL database driver. | No |
orm-sqlite |
Enables the SQLite database driver. | No |
orm-tidb |
Enables the TiDB database driver. | No |
Mappings of Rust data types
| Rust type | MySQL datatype | PostgreSQL datatype | SQLite datatype |
|---|---|---|---|
bool |
BOOLEAN | BOOLEAN | BOOLEAN |
i8 |
TINYINT | SMALLINT | INTEGER |
u8 |
TINYINT UNSIGNED | SMALLINT | INTEGER |
i16 |
SMALLINT | SMALLINT | INTEGER |
u16 |
SMALLINT UNSIGNED | SMALLINT | INTEGER |
i32, Option<i32> |
INT | INT, SERIAL | INTEGER |
u32, Option<u32> |
INT UNSIGNED | INT, SERIAL | INTEGER |
i64, Option<i64>, isize |
BIGINT | BIGINT, BIGSERIAL | INTEGER |
u64, Option<u64>, usize |
BIGINT UNSIGNED | BIGINT, BIGSERIAL | INTEGER |
f32 |
FLOAT | REAL | REAL |
f64 |
DOUBLE | DOUBLE PRECISION | REAL |
Decimal |
NUMERIC | NUMERIC | TEXT |
String, Option<String> |
TEXT, VARCHAR(255) | TEXT | TEXT |
Date, NaiveDate |
DATE | DATE | DATE |
Time, NaiveTime |
TIME | TIME | TIME |
DateTime |
TIMESTAMP(6) | TIMESTAMPTZ | DATETIME |
NaiveDateTime |
DATETIME(6) | TIMESTAMP | DATETIME |
Uuid, Option<Uuid> |
CHAR(36), UUID | UUID | TEXT |
Vec<u8> |
BLOB | BYTEA | BLOB |
Vec<i32>, Vec<u32> |
JSON | INT[] | TEXT |
Vec<i64>, Vec<u64> |
JSON | BIGINT[] | TEXT |
Vec<f32> |
JSON | REAL[] | TEXT |
Vec<f64> |
JSON | DOUBLE PRECISION[] | TEXT |
Vec<String> |
JSON | TEXT[] | TEXT |
Vec<UUID> |
JSON | UUID[] | TEXT |
Map |
JSON | JSONB | TEXT |