pub struct Schema { /* private fields */ }
Expand description
This is a helper struct to convert EntityTrait
into different sea_query
statements.
Implementationsยง
Sourceยงimpl Schema
impl Schema
Sourcepub fn create_enum_from_active_enum<A>(&self) -> TypeCreateStatementwhere
A: ActiveEnum,
pub fn create_enum_from_active_enum<A>(&self) -> TypeCreateStatementwhere
A: ActiveEnum,
Creates Postgres enums from an ActiveEnum. See TypeCreateStatement for more details
Sourcepub fn create_enum_from_entity<E>(&self, entity: E) -> Vec<TypeCreateStatement>where
E: EntityTrait,
pub fn create_enum_from_entity<E>(&self, entity: E) -> Vec<TypeCreateStatement>where
E: EntityTrait,
Creates Postgres enums from an Entity. See TypeCreateStatement for more details
Sourcepub fn create_table_from_entity<E>(&self, entity: E) -> TableCreateStatementwhere
E: EntityTrait,
pub fn create_table_from_entity<E>(&self, entity: E) -> TableCreateStatementwhere
E: EntityTrait,
Creates a table from an Entity. See TableCreateStatement for more details.
Sourcepub fn create_index_from_entity<E>(
&self,
entity: E,
) -> Vec<IndexCreateStatement>where
E: EntityTrait,
pub fn create_index_from_entity<E>(
&self,
entity: E,
) -> Vec<IndexCreateStatement>where
E: EntityTrait,
Creates the indexes from an Entity, returning an empty Vec if there are none to create. See IndexCreateStatement for more details
Sourcepub fn get_column_def<E>(&self, column: E::Column) -> ColumnDefwhere
E: EntityTrait,
pub fn get_column_def<E>(&self, column: E::Column) -> ColumnDefwhere
E: EntityTrait,
Creates a column definition for example to update a table.
use crate::sea_orm::IdenStatic;
use sea_orm::{
ActiveModelBehavior, ColumnDef, ColumnTrait, ColumnType, DbBackend, EntityName,
EntityTrait, EnumIter, PrimaryKeyTrait, RelationDef, RelationTrait, Schema,
};
use sea_orm_macros::{DeriveEntityModel, DerivePrimaryKey};
use sea_query::{MysqlQueryBuilder, TableAlterStatement};
#[derive(Clone, Debug, PartialEq, DeriveEntityModel)]
#[sea_orm(table_name = "posts")]
pub struct Model {
#[sea_orm(primary_key)]
pub id: u32,
pub title: String,
}
#[derive(Copy, Clone, Debug, EnumIter)]
pub enum Relation {}
impl RelationTrait for Relation {
fn def(&self) -> RelationDef {
panic!("No RelationDef")
}
}
impl ActiveModelBehavior for ActiveModel {}
let schema = Schema::new(DbBackend::MySql);
let mut alter_table = TableAlterStatement::new()
.table(Entity)
.add_column(&mut schema.get_column_def::<Entity>(Column::Title))
.take();
assert_eq!(
alter_table.to_string(MysqlQueryBuilder::default()),
"ALTER TABLE `posts` ADD COLUMN `title` varchar(255) NOT NULL"
);
Trait Implementationsยง
Auto Trait Implementationsยง
impl Freeze for Schema
impl RefUnwindSafe for Schema
impl Send for Schema
impl Sync for Schema
impl Unpin for Schema
impl UnwindSafe for Schema
Blanket Implementationsยง
Sourceยงimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Sourceยงfn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Sourceยงimpl<T> Instrument for T
impl<T> Instrument for T
Sourceยงfn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Sourceยงfn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Sourceยงimpl<T> IntoEither for T
impl<T> IntoEither for T
Sourceยงfn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSourceยงfn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more