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