1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
use crate::postgres::def::TableDef;
use sea_query::{Alias, Table, TableCreateStatement};

impl TableDef {
    pub fn write(&self) -> TableCreateStatement {
        let mut table = Table::create();
        table.table(Alias::new(self.info.name.as_ref()));
        for col in self.columns.iter() {
            table.col(&mut col.write());
        }
        for primary_key in self.primary_key_constraints.iter() {
            table.primary_key(&mut primary_key.write());
        }
        for unique in self.unique_constraints.iter() {
            table.index(&mut unique.write());
        }
        for reference in self.reference_constraints.iter() {
            table.foreign_key(&mut reference.write());
        }
        table
    }
}