Skip to main content

Table

Struct Table 

Source
pub struct Table { /* private fields */ }
Expand description

A table definition assembled inside the build closure.

Implementations§

Source§

impl Table

Source

pub fn id(&mut self) -> &mut ColumnDef

Source

pub fn uuid_id(&mut self) -> &mut ColumnDef

Source

pub fn ulid_id(&mut self) -> &mut ColumnDef

ULID placeholder — alias for uuid_id (we don’t ship a ULID Postgres type).

Source

pub fn tiny_integer(&mut self, name: &str) -> &mut ColumnDef

Source

pub fn small_integer(&mut self, name: &str) -> &mut ColumnDef

Source

pub fn medium_integer(&mut self, name: &str) -> &mut ColumnDef

Source

pub fn integer(&mut self, name: &str) -> &mut ColumnDef

Source

pub fn big_integer(&mut self, name: &str) -> &mut ColumnDef

Source

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.

Source

pub fn unsigned_integer(&mut self, name: &str) -> &mut ColumnDef

Source

pub fn decimal( &mut self, name: &str, precision: u32, scale: u32, ) -> &mut ColumnDef

Source

pub fn float(&mut self, name: &str) -> &mut ColumnDef

Source

pub fn double(&mut self, name: &str) -> &mut ColumnDef

Source

pub fn string(&mut self, name: &str) -> &mut ColumnDef

Source

pub fn string_with_length(&mut self, name: &str, length: u32) -> &mut ColumnDef

Variable-length string with a custom max.

Source

pub fn text(&mut self, name: &str) -> &mut ColumnDef

Source

pub fn long_text(&mut self, name: &str) -> &mut ColumnDef

Source

pub fn medium_text(&mut self, name: &str) -> &mut ColumnDef

Source

pub fn char(&mut self, name: &str, length: u32) -> &mut ColumnDef

Source

pub fn remember_token(&mut self) -> &mut ColumnDef

Laravel’s remember_token: nullable VARCHAR(100) used by stay-logged-in cookies.

Source

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.

Source

pub fn binary(&mut self, name: &str) -> &mut ColumnDef

Source

pub fn boolean(&mut self, name: &str) -> &mut ColumnDef

Source

pub fn timestamp(&mut self, name: &str) -> &mut ColumnDef

Source

pub fn timestamp_tz(&mut self, name: &str) -> &mut ColumnDef

Source

pub fn date(&mut self, name: &str) -> &mut ColumnDef

Source

pub fn time(&mut self, name: &str) -> &mut ColumnDef

Source

pub fn date_time(&mut self, name: &str) -> &mut ColumnDef

Source

pub fn year(&mut self, name: &str) -> &mut ColumnDef

Source

pub fn timestamps(&mut self)

Adds created_at + updated_at, both TIMESTAMPTZ NULL DEFAULT CURRENT_TIMESTAMP.

Source

pub fn soft_deletes(&mut self)

Source

pub fn json(&mut self, name: &str) -> &mut ColumnDef

Source

pub fn jsonb(&mut self, name: &str) -> &mut ColumnDef

Source

pub fn uuid(&mut self, name: &str) -> &mut ColumnDef

Source

pub fn ip_address(&mut self, name: &str) -> &mut ColumnDef

Source

pub fn mac_address(&mut self, name: &str) -> &mut ColumnDef

Source

pub fn morphs(&mut self, name: &str)

Polymorphic FK columns: <name>_id BIGINT + <name>_type VARCHAR(255). Mirrors Laravel’s $table->morphs('commentable').

Source

pub fn nullable_morphs(&mut self, name: &str)

Source

pub fn uuid_morphs(&mut self, name: &str)

UUID polymorphic variant: <name>_id UUID + <name>_type VARCHAR(255).

Source

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 pattern
  • t.big_integer("user_id") + t.foreign("user_id").references("id").on("users") — explicit
Source

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').

Source

pub fn index(&mut self, columns: &[&str]) -> &mut Table

Source

pub fn unique_index(&mut self, columns: &[&str]) -> &mut Table

Source

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 ….

Source

pub fn drop_column(&mut self, name: &str) -> &mut Table

Source

pub fn rename_column(&mut self, from: &str, to: &str) -> &mut Table

Source

pub fn drop_index(&mut self, name: &str) -> &mut Table

Source

pub fn drop_foreign(&mut self, constraint: &str) -> &mut Table

Source

pub fn drop_unique(&mut self, name: &str) -> &mut Table

Source

pub fn drop_timestamps(&mut self) -> &mut Table

Source

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more