pub struct Table { /* private fields */ }Expand description
A table definition assembled inside the build closure.
Implementations§
Source§impl Table
impl Table
pub fn id(&mut self) -> &mut ColumnDef
pub fn uuid_id(&mut self) -> &mut ColumnDef
Sourcepub fn ulid_id(&mut self) -> &mut ColumnDef
pub fn ulid_id(&mut self) -> &mut ColumnDef
ULID placeholder — alias for uuid_id (we don’t ship a ULID Postgres type).
pub fn tiny_integer(&mut self, name: &str) -> &mut ColumnDef
pub fn small_integer(&mut self, name: &str) -> &mut ColumnDef
pub fn medium_integer(&mut self, name: &str) -> &mut ColumnDef
pub fn integer(&mut self, name: &str) -> &mut ColumnDef
pub fn big_integer(&mut self, name: &str) -> &mut ColumnDef
Sourcepub fn unsigned_big_integer(&mut self, name: &str) -> &mut ColumnDef
pub fn unsigned_big_integer(&mut self, name: &str) -> &mut ColumnDef
Postgres has no native unsigned types, so this is a synonym for big_integer
with a >= 0 check constraint. Provided for Laravel parity.
pub fn unsigned_integer(&mut self, name: &str) -> &mut ColumnDef
pub fn decimal( &mut self, name: &str, precision: u32, scale: u32, ) -> &mut ColumnDef
pub fn float(&mut self, name: &str) -> &mut ColumnDef
pub fn double(&mut self, name: &str) -> &mut ColumnDef
pub fn string(&mut self, name: &str) -> &mut ColumnDef
Sourcepub fn string_with_length(&mut self, name: &str, length: u32) -> &mut ColumnDef
pub fn string_with_length(&mut self, name: &str, length: u32) -> &mut ColumnDef
Variable-length string with a custom max.
pub fn text(&mut self, name: &str) -> &mut ColumnDef
pub fn long_text(&mut self, name: &str) -> &mut ColumnDef
pub fn medium_text(&mut self, name: &str) -> &mut ColumnDef
pub fn char(&mut self, name: &str, length: u32) -> &mut ColumnDef
Sourcepub fn remember_token(&mut self) -> &mut ColumnDef
pub fn remember_token(&mut self) -> &mut ColumnDef
Laravel’s remember_token: nullable VARCHAR(100) used by stay-logged-in cookies.
Sourcepub fn enum_col(&mut self, name: &str, variants: &[&str]) -> &mut ColumnDef
pub fn enum_col(&mut self, name: &str, variants: &[&str]) -> &mut ColumnDef
CHECK-constrained enum column. Postgres has native ENUM types but they’re
painful for migrations; this models them as VARCHAR + CHECK constraint.
pub fn binary(&mut self, name: &str) -> &mut ColumnDef
pub fn boolean(&mut self, name: &str) -> &mut ColumnDef
pub fn timestamp(&mut self, name: &str) -> &mut ColumnDef
pub fn timestamp_tz(&mut self, name: &str) -> &mut ColumnDef
pub fn date(&mut self, name: &str) -> &mut ColumnDef
pub fn time(&mut self, name: &str) -> &mut ColumnDef
pub fn date_time(&mut self, name: &str) -> &mut ColumnDef
pub fn year(&mut self, name: &str) -> &mut ColumnDef
Sourcepub fn timestamps(&mut self)
pub fn timestamps(&mut self)
Adds created_at + updated_at, both TIMESTAMPTZ NULL DEFAULT CURRENT_TIMESTAMP.
pub fn soft_deletes(&mut self)
pub fn json(&mut self, name: &str) -> &mut ColumnDef
pub fn jsonb(&mut self, name: &str) -> &mut ColumnDef
pub fn uuid(&mut self, name: &str) -> &mut ColumnDef
pub fn ip_address(&mut self, name: &str) -> &mut ColumnDef
pub fn mac_address(&mut self, name: &str) -> &mut ColumnDef
Sourcepub fn morphs(&mut self, name: &str)
pub fn morphs(&mut self, name: &str)
Polymorphic FK columns: <name>_id BIGINT + <name>_type VARCHAR(255).
Mirrors Laravel’s $table->morphs('commentable').
pub fn nullable_morphs(&mut self, name: &str)
Sourcepub fn uuid_morphs(&mut self, name: &str)
pub fn uuid_morphs(&mut self, name: &str)
UUID polymorphic variant: <name>_id UUID + <name>_type VARCHAR(255).
Sourcepub fn foreign_id_for(&mut self, name: &str, references: &str) -> &mut ColumnDef
pub fn foreign_id_for(&mut self, name: &str, references: &str) -> &mut ColumnDef
Shortcut: add a bigint column with a FK to references.id. Laravel’s
$table->foreignId('user_id')->constrained() is split here into:
t.foreign_id_for("user_id", "users")— most common patternt.big_integer("user_id")+t.foreign("user_id").references("id").on("users")— explicit
Sourcepub fn foreign(&mut self, column: &str) -> ForeignKeyBuilder<'_>
pub fn foreign(&mut self, column: &str) -> ForeignKeyBuilder<'_>
Begin a fluent foreign-key constraint builder for column.
Mirrors $table->foreign('user_id')->references('id')->on('users').
pub fn index(&mut self, columns: &[&str]) -> &mut Table
pub fn unique_index(&mut self, columns: &[&str]) -> &mut Table
Sourcepub fn raw_index(&mut self, sql: impl Into<String>) -> &mut Table
pub fn raw_index(&mut self, sql: impl Into<String>) -> &mut Table
Postgres trigram / GIN indexes are common — let users emit raw CREATE INDEX … USING ….
pub fn drop_column(&mut self, name: &str) -> &mut Table
pub fn rename_column(&mut self, from: &str, to: &str) -> &mut Table
pub fn drop_index(&mut self, name: &str) -> &mut Table
pub fn drop_foreign(&mut self, constraint: &str) -> &mut Table
pub fn drop_unique(&mut self, name: &str) -> &mut Table
pub fn drop_timestamps(&mut self) -> &mut Table
pub fn drop_soft_deletes(&mut self) -> &mut Table
Auto Trait Implementations§
impl Freeze for Table
impl !RefUnwindSafe for Table
impl Send for Table
impl Sync for Table
impl Unpin for Table
impl UnsafeUnpin for Table
impl !UnwindSafe for Table
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more