pub trait Schema {
Show 22 methods
// Required methods
fn quoter(&self) -> Quoter;
fn query_upgrade_tags<C, DB: Database>(
&self,
conn: &mut C,
table_name: &String,
tag: &String,
) -> impl Future<Output = Result<Vec<String>>> + Send
where for<'a> &'a mut C: Executor<'a, Database = DB>,
for<'a> DB::Arguments<'a>: IntoArguments<'a, DB>,
for<'a> &'a str: ColumnIndex<DB::Row>,
for<'a> bool: Decode<'a, DB> + Type<DB>,
for<'a> i32: Decode<'a, DB> + Type<DB>,
for<'a> i64: Decode<'a, DB> + Type<DB> + Encode<'a, DB>,
for<'a> String: Decode<'a, DB> + Encode<'a, DB> + Type<DB>;
fn insert_upgrade_tag<C, DB: Database>(
&self,
conn: &mut C,
table_name: &String,
tag: &String,
tag_value: &String,
) -> impl Future<Output = Result<()>> + Send
where for<'a> &'a mut C: Executor<'a, Database = DB>,
for<'a> <DB as Database>::Arguments<'a>: IntoArguments<'a, DB>,
for<'a> &'a str: ColumnIndex<DB::Row>,
for<'a> bool: Decode<'a, DB> + Type<DB>,
for<'a> i32: Decode<'a, DB> + Type<DB>,
for<'a> i64: Decode<'a, DB> + Type<DB> + Encode<'a, DB>,
for<'a> String: Decode<'a, DB> + Encode<'a, DB> + Type<DB>;
fn table_name_with_schema(&self, table: &TableSchema) -> String;
fn is_table_name_equal(
&self,
table1: &TableSchema,
table2: &TableSchema,
) -> bool;
fn execute_sql<'c, C, DB: Database>(
&self,
conn: &mut C,
sql: &'c str,
) -> impl Future<Output = Result<<DB as Database>::QueryResult>> + Send
where for<'a> &'a mut C: Executor<'a, Database = DB>,
for<'a> DB::Arguments<'a>: IntoArguments<'a, DB>,
for<'a> &'a str: ColumnIndex<DB::Row>,
for<'a> bool: Decode<'a, DB> + Type<DB>,
for<'a> i32: Decode<'a, DB> + Type<DB>,
for<'a> i64: Decode<'a, DB> + Type<DB> + Encode<'a, DB>,
for<'a> String: Decode<'a, DB> + Encode<'a, DB> + Type<DB>;
fn get_tables<C, DB: Database>(
&self,
conn: &mut C,
) -> impl Future<Output = Result<Vec<TableSchema>>> + Send
where for<'e> &'e mut C: Executor<'e, Database = DB>,
for<'a> DB::Arguments<'a>: IntoArguments<'a, DB>,
for<'a> &'a str: ColumnIndex<DB::Row>,
for<'a> bool: Decode<'a, DB> + Type<DB>,
for<'a> i32: Decode<'a, DB> + Type<DB>,
for<'a> i64: Decode<'a, DB> + Type<DB> + Encode<'a, DB>,
for<'a> String: Decode<'a, DB> + Encode<'a, DB> + Type<DB>;
fn sql_create_table(&self, table: &TableSchema) -> Result<Vec<String>>;
fn sql_drop_table(&self, table: &TableSchema) -> String;
fn sql_create_index(
&self,
table: &TableSchema,
index: &Index,
) -> Option<String>;
fn sql_create_indexes(&self, table: &TableSchema) -> Vec<String>;
fn sql_drop_index(&self, table: &TableSchema, index: &Index) -> String;
fn sql_add_column(&self, table: &TableSchema, col: &Column) -> String;
fn sql_alter_column(
&self,
table: &TableSchema,
old: &Column,
new: &Column,
) -> Result<Vec<String>>;
fn sql_drop_column(&self, table: &TableSchema, col: &Column) -> String;
fn sql_insert(&self, table: &TableSchema) -> String;
fn sql_insert_columns(
&self,
table: &TableSchema,
cols: &Vec<String>,
) -> String;
fn sql_update_columns(
&self,
table: &TableSchema,
cols: &Vec<String>,
wh: Option<Where>,
) -> String;
fn sql_delete(&self, table: &TableSchema, wh: Option<Where>) -> String;
fn sql_count(&self, table: &TableSchema, wh: Option<Where>) -> String;
fn sql_select(
&self,
table: &TableSchema,
wh: Option<Where>,
orders: &Vec<Order>,
pg: Option<&PageRequest>,
) -> String;
fn sql_select_columns(
&self,
table: &TableSchema,
columns: &Vec<String>,
wh: Option<Where>,
orders: &Vec<Order>,
pg: Option<&PageRequest>,
) -> String;
}Required Methods§
fn quoter(&self) -> Quoter
fn insert_upgrade_tag<C, DB: Database>(
&self,
conn: &mut C,
table_name: &String,
tag: &String,
tag_value: &String,
) -> impl Future<Output = Result<()>> + Sendwhere
for<'a> &'a mut C: Executor<'a, Database = DB>,
for<'a> <DB as Database>::Arguments<'a>: IntoArguments<'a, DB>,
for<'a> &'a str: ColumnIndex<DB::Row>,
for<'a> bool: Decode<'a, DB> + Type<DB>,
for<'a> i32: Decode<'a, DB> + Type<DB>,
for<'a> i64: Decode<'a, DB> + Type<DB> + Encode<'a, DB>,
for<'a> String: Decode<'a, DB> + Encode<'a, DB> + Type<DB>,
fn table_name_with_schema(&self, table: &TableSchema) -> String
fn is_table_name_equal( &self, table1: &TableSchema, table2: &TableSchema, ) -> bool
fn execute_sql<'c, C, DB: Database>(
&self,
conn: &mut C,
sql: &'c str,
) -> impl Future<Output = Result<<DB as Database>::QueryResult>> + Sendwhere
for<'a> &'a mut C: Executor<'a, Database = DB>,
for<'a> DB::Arguments<'a>: IntoArguments<'a, DB>,
for<'a> &'a str: ColumnIndex<DB::Row>,
for<'a> bool: Decode<'a, DB> + Type<DB>,
for<'a> i32: Decode<'a, DB> + Type<DB>,
for<'a> i64: Decode<'a, DB> + Type<DB> + Encode<'a, DB>,
for<'a> String: Decode<'a, DB> + Encode<'a, DB> + Type<DB>,
fn get_tables<C, DB: Database>(
&self,
conn: &mut C,
) -> impl Future<Output = Result<Vec<TableSchema>>> + Sendwhere
for<'e> &'e mut C: Executor<'e, Database = DB>,
for<'a> DB::Arguments<'a>: IntoArguments<'a, DB>,
for<'a> &'a str: ColumnIndex<DB::Row>,
for<'a> bool: Decode<'a, DB> + Type<DB>,
for<'a> i32: Decode<'a, DB> + Type<DB>,
for<'a> i64: Decode<'a, DB> + Type<DB> + Encode<'a, DB>,
for<'a> String: Decode<'a, DB> + Encode<'a, DB> + Type<DB>,
fn sql_create_table(&self, table: &TableSchema) -> Result<Vec<String>>
fn sql_drop_table(&self, table: &TableSchema) -> String
fn sql_create_index(&self, table: &TableSchema, index: &Index) -> Option<String>
fn sql_create_indexes(&self, table: &TableSchema) -> Vec<String>
fn sql_drop_index(&self, table: &TableSchema, index: &Index) -> String
fn sql_add_column(&self, table: &TableSchema, col: &Column) -> String
fn sql_alter_column( &self, table: &TableSchema, old: &Column, new: &Column, ) -> Result<Vec<String>>
fn sql_drop_column(&self, table: &TableSchema, col: &Column) -> String
fn sql_insert(&self, table: &TableSchema) -> String
fn sql_insert_columns(&self, table: &TableSchema, cols: &Vec<String>) -> String
fn sql_update_columns( &self, table: &TableSchema, cols: &Vec<String>, wh: Option<Where>, ) -> String
fn sql_delete(&self, table: &TableSchema, wh: Option<Where>) -> String
fn sql_count(&self, table: &TableSchema, wh: Option<Where>) -> String
fn sql_select( &self, table: &TableSchema, wh: Option<Where>, orders: &Vec<Order>, pg: Option<&PageRequest>, ) -> String
fn sql_select_columns( &self, table: &TableSchema, columns: &Vec<String>, wh: Option<Where>, orders: &Vec<Order>, pg: Option<&PageRequest>, ) -> String
Object Safety§
This trait is not object safe.