PostgresBuilder
class PostgresBuilder extends Builder
Traits
Constants
| protected DEFAULT_STRING_LENGTH |
|
| protected DEFAULT_TIME_PRECISION |
|
| protected DEFAULT_MORPH_KEY_TYPE |
|
Properties
| static protected array | $macros | The registered string macros. |
from Macroable |
| protected Connection | $connection | The database connection instance. |
from Builder |
| PostgresGrammar | $grammar | ||
| protected Connection, string, null|Blueprint | $resolver | The Blueprint resolver callback. |
from Builder |
| static null|non-negative-int | $defaultStringLength | The default string length for migrations. |
from Builder |
| static int|null | $defaultTimePrecision | The default time precision for migrations. |
from Builder |
| static "int"|"ulid"|"uuid" | $defaultMorphKeyType | The default relationship morph key type. |
from Builder |
Methods
Mix another object into the class.
Dynamically handle calls to the class.
Dynamically handle calls to the class.
Set the default string length for migrations.
Set the default time precision for migrations.
Set the default morph key type for migrations.
Drop a database from the schema if the database exists.
Get the tables that belong to the connection.
Get the names of the tables that belong to the connection.
Get the views that belong to the connection.
Get the user-defined types that belong to the connection.
Determine if the given table has a given column.
Determine if the given table has given columns.
Execute a table builder callback if the given table has a given column.
Execute a table builder callback if the given table doesn't have a given column.
Execute a table builder callback if the given table has a given index.
Execute a table builder callback if the given table doesn't have a given index.
Get the data type for the given column name.
Determine if the given table has a given index.
Determine if the table has a given foreign key.
Create the migration repository table for this database driver.
Drop columns from a table schema.
Drop all tables from the database.
Drop all views from the database.
Drop all types from the database.
Disable foreign key constraints during the execution of a callback.
Determine whether foreign key constraints are enabled.
Set the foreign key constraint state for an internal suppression scope.
Execute internal physical-session maintenance.
Create the vector extension on the schema if it does not exist.
Create a new extension on the schema if it does not exist.
Execute the given schema statements in order.
Read schema metadata from the same write connection that migrations mutate.
Read a scalar result through the metadata execution hook.
Determine whether every executable command is declared by the framework grammar.
Create a new command set with a Closure.
Get the current schemas for the connection.
Get the default schema name for the connection.
Parse the given database object reference and extract the schema and table.
Parse the Postgres "search_path" configuration value into an array.
Details
in
Macroable at line 28
static void
macro(string $name, callable|object $macro)
Register a custom macro.
Boot-only. Macros persist in a static property for the worker lifetime and apply to every subsequent call on the macroable class.
in
Macroable at line 41
static void
mixin(object $mixin, bool $replace = true)
Mix another object into the class.
Boot-only. Delegates to macro() for each method; registered macros persist in a static property for the worker lifetime.
in
Macroable at line 57
static bool
hasMacro(string $name)
Check if macro is registered.
in
Macroable at line 68
static void
flushMacros()
Flush the existing macros.
Boot or tests only. Clears worker-wide macros; concurrent coroutines may resolve different methods depending on timing.
in
Macroable at line 78
static mixed
__callStatic(string $method, array $parameters)
Dynamically handle calls to the class.
in
Macroable at line 103
mixed
__call(string $method, array $parameters)
Dynamically handle calls to the class.
in
Builder at line 67
__construct(Connection $connection)
Create a new database Schema manager.
in
Builder at line 81
static void
defaultStringLength(int $length)
Set the default string length for migrations.
Boot-only. The length persists in a static property for the worker lifetime and applies to every Blueprint::string() across all coroutines.
in
Builder at line 92
static void
defaultTimePrecision(int|null $precision)
Set the default time precision for migrations.
Boot-only. The precision persists in a static property for the worker lifetime and applies to every time/datetime column across all coroutines.
in
Builder at line 105
static void
defaultMorphKeyType(string $type)
Set the default morph key type for migrations.
Boot-only. The type persists in a static property for the worker lifetime and applies to every morph() column across all coroutines.
in
Builder at line 119
static void
morphUsingUuids()
Set the default morph key type for migrations to UUIDs.
Boot-only. Sets the worker-wide morph type via defaultMorphKeyType().
in
Builder at line 129
static void
morphUsingUlids()
Set the default morph key type for migrations to ULIDs.
Boot-only. Sets the worker-wide morph type via defaultMorphKeyType().
in
Builder at line 137
bool
createDatabase(string $name)
Create a database in the schema.
in
Builder at line 147
bool
dropDatabaseIfExists(string $name)
Drop a database from the schema if the database exists.
in
Builder at line 159
array
getSchemas()
Get the schemas that belong to the connection.
in
Builder at line 169
bool
hasTable(string $table)
Determine if the given table exists.
in
Builder at line 191
bool
hasView(string $view)
Determine if the given view exists.
in
Builder at line 212
array
getTables(array|string|null $schema = null)
Get the tables that belong to the connection.
in
Builder at line 224
array
getTableListing(array|string|null $schema = null, bool $schemaQualified = true)
Get the names of the tables that belong to the connection.
in
Builder at line 237
array
getViews(array|string|null $schema = null)
Get the views that belong to the connection.
in
Builder at line 249
array
getTypes(array|string|null $schema = null)
Get the user-defined types that belong to the connection.
in
Builder at line 259
bool
hasColumn(string $table, string $column)
Determine if the given table has a given column.
in
Builder at line 272
bool
hasColumns(string $table, array $columns)
Determine if the given table has given columns.
in
Builder at line 289
void
whenTableHasColumn(string $table, string $column, Closure $callback)
Execute a table builder callback if the given table has a given column.
in
Builder at line 299
void
whenTableDoesntHaveColumn(string $table, string $column, Closure $callback)
Execute a table builder callback if the given table doesn't have a given column.
in
Builder at line 309
void
whenTableHasIndex(string $table, array|string $index, Closure $callback, string|null $type = null)
Execute a table builder callback if the given table has a given index.
in
Builder at line 319
void
whenTableDoesntHaveIndex(string $table, array|string $index, Closure $callback, string|null $type = null)
Execute a table builder callback if the given table doesn't have a given index.
in
Builder at line 331
string
getColumnType(string $table, string $column, bool $fullDefinition = false)
Get the data type for the given column name.
in
Builder at line 349
array
getColumnListing(string $table)
Get the column listing for a given table.
in
Builder at line 359
array
getColumns(string $table)
Get the columns for a given table.
in
Builder at line 377
array
getIndexes(string $table)
Get the indexes for a given table.
in
Builder at line 395
array
getIndexListing(string $table)
Get the names of the indexes for a given table.
in
Builder at line 407
string
qualifyIndexName(string $name)
Qualify an explicit index name.
The configured table prefix is applied only when index prefixing is enabled. Names are always lowercased, with dashes and dots normalized to underscores to match generated index names.
in
Builder at line 419
bool
hasIndex(string $table, array|string $index, string|null $type = null)
Determine if the given table has a given index.
in
Builder at line 442
bool
hasForeignKey(string $table, array|string $foreignKey)
Determine if the table has a given foreign key.
in
Builder at line 458
array
getForeignKeys(string $table)
Get the foreign keys for a given table.
in
Builder at line 482
void
create(string $table, Closure $callback)
Create a new table on the schema.
in
Builder at line 494
void
createMigrationRepositoryTable(string $table)
Create the migration repository table for this database driver.
in
Builder at line 509
void
drop(string $table)
Drop a table from the schema.
in
Builder at line 519
void
dropIfExists(string $table)
Drop a table from the schema if it exists.
in
Builder at line 531
void
dropColumns(string $table, array|string $columns)
Drop columns from a table schema.
at line 60
void
dropAllTables()
Drop all tables from the database.
at line 85
void
dropAllViews()
Drop all views from the database.
at line 102
void
dropAllTypes()
Drop all types from the database.
in
Builder at line 573
void
truncateTables(array $tables)
Truncate the given tables if they contain rows.
in
Builder at line 588
void
rename(string $from, string $to)
Rename a table on the schema.
in
Builder at line 598
bool
enableForeignKeyConstraints()
Enable foreign key constraints.
in
Builder at line 608
bool
disableForeignKeyConstraints()
Disable foreign key constraints.
in
Builder at line 623
mixed
withoutForeignKeyConstraints(Closure $callback)
Disable foreign key constraints during the execution of a callback.
in
Builder at line 655
protected bool
foreignKeyConstraintsAreEnabled()
Determine whether foreign key constraints are enabled.
Drivers that cannot inspect the current mode report enabled so the outer scope applies and restores their normal constraint mode.
in
Builder at line 663
protected void
setForeignKeyConstraints(bool $enabled)
Set the foreign key constraint state for an internal suppression scope.
in
Builder at line 683
protected void
executeSessionStatement(string $statement)
Execute internal physical-session maintenance.
in
Builder at line 691
void
ensureVectorExtensionExists(string|null $schema = null)
Create the vector extension on the schema if it does not exist.
in
Builder at line 701
void
ensureExtensionExists(string $name, string|null $schema = null)
Create a new extension on the schema if it does not exist.
at line 21
void
executeBlueprint(Blueprint $blueprint)
Execute the given schema blueprint.
in
Builder at line 726
protected void
build(Blueprint $blueprint)
Execute the blueprint to build / modify the table.
in
Builder at line 736
protected void
executeStatements(array $statements)
Execute the given schema statements in order.
in
Builder at line 748
protected array
selectMetadata(string $query)
Read schema metadata from the same write connection that migrations mutate.
in
Builder at line 758
protected mixed
scalarMetadata(string $query)
Read a scalar result through the metadata execution hook.
in
Builder at line 774
protected bool
commandsAreDeclaredOn(Blueprint $blueprint, string $grammar)
Determine whether every executable command is declared by the framework grammar.
in
Builder at line 792
protected Blueprint
createBlueprint(string $table, Closure|null $callback = null)
Create a new command set with a Closure.
at line 136
array|null
getCurrentSchemaListing()
Get the current schemas for the connection.
at line 152
string|null
getCurrentSchemaName()
Get the default schema name for the connection.
in
Builder at line 828
array
parseSchemaAndTable(string $reference, bool|string|null $withDefaultSchema = null)
Parse the given database object reference and extract the schema and table.
in
Builder at line 853
Connection
getConnection()
Get the database connection instance.
in
Builder at line 863
void
blueprintResolver(Closure $resolver)
Set the Schema Blueprint resolver callback.
in
Builder at line 871
static void
flushState()
Flush all static state.
in
ParsesSearchPath at line 12
protected array
parseSearchPath(string|array|null $searchPath)
Parse the Postgres "search_path" configuration value into an array.
at line 46
protected bool
hasOnlineCommand(Blueprint $blueprint)
Determine whether the blueprint contains an online command.