sea-orm-verify 0.1.0

verify sea-orm entities with sqlx compile time macros
Documentation
# sea-orm-verify

Provides `Verify` derive macro.

```rust, ignore
#[derive(DeriveEntityModel, Verify)]
#[derive(Debug, Clone, PartialEq)]
#[sea_orm(table_name = "task")]
pub struct Model {
    #[sea_orm(primary_key)]
    pub id: u32,
    pub finish_at: Option<DateTime>,
}
```

generates

```rust, ignore
impl Model {
    async fn _verify() {
        sqlx::query_as!(Self, "SELECT id, finish_at FROM task");
    }
}
```

this will cause sqlx query_as macro to verify the struct fields with the database at compile time
needs to have setup DATABASE_URL for example using .env or sqlx offline data. Please refer to [docs.rs/sqlx](https://docs.rs/sqlx/latest/sqlx/macro.query_as.html)

it also needs sqlx as a dependency in your project, for example for Postgres in Cargo.toml it needs:
```toml
sqlx = { version = "0.6", features = ["runtime-tokio-rustls", "postgres"] }
```

Please be aware that sqlx and sea-orm column mapping might be not 100% compatible and this check might fail to catch some column type mismatch you still have

Supported struct attributes inside `#[sea_orm()`:
* `table_name` - gets the database table name
* `schema_name` - gets the database schema name (for Postgres)

Supported field attributes inside `#[verify()]`:
* `type_override` - override sqlx type like described in [Force a Different/Custom Type]https://docs.rs/sqlx/latest/sqlx/macro.query.html#force-a-differentcustom-type, useful for custom enums. Enum need to annotated with `#[derive(sqlx::Type)` and `#[sqlx(type_name = "integer")]`
* `not_null` - forces the column to be NOT NULL, useful for example for db views where sqlx get the nullable wrong.
* `null` - same as `not_null` but forces the column to be NULL