Struct leetcode_tui_rs::migrations::sea_orm::schema::Schema
source · 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, Global>where
E: EntityTrait,
pub fn create_enum_from_entity<E>( &self, entity: E ) -> Vec<TypeCreateStatement, Global>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, Global>where
E: EntityTrait,
pub fn create_index_from_entity<E>( &self, entity: E ) -> Vec<IndexCreateStatement, Global>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 as EntityTrait>::Column) -> ColumnDefwhere
E: EntityTrait,
pub fn get_column_def<E>(&self, column: <E as EntityTrait>::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 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