drizzle_types/postgres/ddl/
mod.rs1mod check_constraint;
40mod column;
41mod enum_type;
42mod foreign_key;
43mod index;
44mod policy;
45mod primary_key;
46mod privilege;
47mod role;
48mod schema;
49mod sequence;
50pub mod sql;
51mod unique_constraint;
52mod view;
53
54pub use check_constraint::CheckConstraintDef;
56pub use column::{ColumnDef, GeneratedDef, GeneratedType, IdentityDef, IdentityType};
57pub use enum_type::EnumDef;
58pub use foreign_key::{ForeignKeyDef, ReferentialAction};
59pub use index::{IndexColumn, IndexColumnDef, IndexDef, OpclassDef};
60pub use policy::PolicyDef;
61pub use primary_key::PrimaryKeyDef;
62pub use privilege::{PrivilegeDef, PrivilegeType};
63pub use role::RoleDef;
64pub use schema::SchemaDef;
65pub use sequence::SequenceDef;
66pub use unique_constraint::UniqueConstraintDef;
67pub use view::{ViewDef, ViewWithOptionDef};
68
69pub use check_constraint::CheckConstraint;
71pub use column::{Column, Generated, Identity};
72pub use enum_type::Enum;
73pub use foreign_key::ForeignKey;
74pub use index::{Index, Opclass};
75pub use policy::Policy;
76pub use primary_key::PrimaryKey;
77pub use privilege::Privilege;
78pub use role::Role;
79pub use schema::Schema;
80pub use sequence::Sequence;
81pub use unique_constraint::UniqueConstraint;
82pub use view::{View, ViewWithOption};
83
84pub use sql::TableSql;
86
87#[cfg(feature = "serde")]
88pub use crate::serde_helpers::{
89 cow_from_string, cow_option_from_string, cow_option_vec_from_strings, cow_vec_from_strings,
90};
91
92pub const ENTITY_TYPE_SCHEMAS: &str = "schemas";
98pub const ENTITY_TYPE_ENUMS: &str = "enums";
100pub const ENTITY_TYPE_SEQUENCES: &str = "sequences";
102pub const ENTITY_TYPE_ROLES: &str = "roles";
104pub const ENTITY_TYPE_POLICIES: &str = "policies";
106pub const ENTITY_TYPE_TABLES: &str = "tables";
108pub const ENTITY_TYPE_COLUMNS: &str = "columns";
110pub const ENTITY_TYPE_INDEXES: &str = "indexes";
112pub const ENTITY_TYPE_FKS: &str = "fks";
114pub const ENTITY_TYPE_PKS: &str = "pks";
116pub const ENTITY_TYPE_UNIQUES: &str = "uniques";
118pub const ENTITY_TYPE_CHECKS: &str = "checks";
120pub const ENTITY_TYPE_VIEWS: &str = "views";
122pub const ENTITY_TYPE_PRIVILEGES: &str = "privileges";
124
125mod table;
126
127pub use table::{Table, TableDef};
129
130#[derive(Clone, Debug, PartialEq, Eq)]
138#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
139#[cfg_attr(feature = "serde", serde(tag = "entityType"))]
140pub enum PostgresEntity {
141 #[cfg_attr(feature = "serde", serde(rename = "schemas"))]
142 Schema(Schema),
143 #[cfg_attr(feature = "serde", serde(rename = "enums"))]
144 Enum(Enum),
145 #[cfg_attr(feature = "serde", serde(rename = "sequences"))]
146 Sequence(Sequence),
147 #[cfg_attr(feature = "serde", serde(rename = "roles"))]
148 Role(Role),
149 #[cfg_attr(feature = "serde", serde(rename = "policies"))]
150 Policy(Policy),
151 #[cfg_attr(feature = "serde", serde(rename = "privileges"))]
152 Privilege(Privilege),
153 #[cfg_attr(feature = "serde", serde(rename = "tables"))]
154 Table(Table),
155 #[cfg_attr(feature = "serde", serde(rename = "columns"))]
156 Column(Column),
157 #[cfg_attr(feature = "serde", serde(rename = "indexes"))]
158 Index(Index),
159 #[cfg_attr(feature = "serde", serde(rename = "fks"))]
160 ForeignKey(ForeignKey),
161 #[cfg_attr(feature = "serde", serde(rename = "pks"))]
162 PrimaryKey(PrimaryKey),
163 #[cfg_attr(feature = "serde", serde(rename = "uniques"))]
164 UniqueConstraint(UniqueConstraint),
165 #[cfg_attr(feature = "serde", serde(rename = "checks"))]
166 CheckConstraint(CheckConstraint),
167 #[cfg_attr(feature = "serde", serde(rename = "views"))]
168 View(View),
169}