When creating a column from the Blueprint
object, a Column
object is returned. This column
gives you access to a few modifier commands to further configure the column.
Methods | |
---|---|
comment | default |
nullable | primaryKey |
references | unsigned |
unique |
Attach a comment to the column.
Argument | Type | Required | Default | Description |
---|---|---|---|---|
comment | string | true |
The comment text. |
Example:
SchemaBuilder
schema.create( "users", function( table ) {
table.integer( "age" ).comment( "Do not lie about your age" );
} );
SQL (MySQL)
CREATE TABLE `users` (
`age` INTEGER NOT NULL COMMENT `Do not lie about your age`
)
Sets a default value for the column.
Argument | Type | Required | Default | Description |
---|---|---|---|---|
value | string | true |
The default value. |
Example:
SchemaBuilder
schema.create( "users", function( table ) {
table.boolean( "is_active" ).default( 1 );
} );
SQL (MySQL)
CREATE TABLE `users` (
`is_active` TINYINT(1) DEFAULT 1
)
Sets the column to allow null values.
Argument | Type | Required | Default | Description |
---|---|---|---|---|
No arguments |
All columns are created as NOT NULL
by default. As such, there is no notNull
method.
Example:
SchemaBuilder
schema.create( "users", function( table ) {
table.timestamp( "last_logged_in" ).nullable()
} );
SQL (MySQL)
CREATE TABLE `users` (
`last_logged_in` TIMESTAMP
)
Adds the column as a primary key for the table.
Argument | Type | Required | Default | Description |
---|---|---|---|---|
indexName | string | false |
A derived name built from the table name and column name. | The name to use for the primary key constraint. |
The primaryKey
method returns a TableIndex
instance. Additional methods can be chained off of it.
Example:
SchemaBuilder
schema.create( "users", function( table ) {
table.uuid( "id" ).primaryKey();
} );
SQL (MySQL)
CREATE TABLE `users` (
`id` CHAR(35) NOT NULL,
CONSTAINT `pk_users_id` PRIMARY KEY (`id`)
)
Creates a foreign key constraint for the column.
Argument | Type | Required | Default | Description |
---|---|---|---|---|
value | string | true |
The default value. |
IMPORTANT: Additional configuration of the foreign constraint is done by calling methods on the returned TableIndex
instance.
Example:
SchemaBuilder
schema.create( "users", function( table ) {
table.unsignedInteger( "country_id" ).references( "id" ).onTable( "countries" ).onDelete( "cascade" );
} );
SQL (MySQL)
CREATE TABLE `users` (
`country_id` INTEGER UNSIGNED NOT NULL,
CONSTRAINT `fk_users_country_id` FOREIGN KEY (`country_id`) REFERENCES `countries` (`id`) ON UPDATE NO ACTION ON DELETE CASCADE
)
Sets the column as unsigned.
Argument | Type | Required | Default | Description |
---|---|---|---|---|
No arguments |
Example:
SchemaBuilder
schema.create( "users", function( table ) {
table.integer( age" ).unsigned();
} );
SQL (MySQL)
CREATE TABLE `users` (
`age` INTEGER UNSIGNED NOT NULL
)
Sets the column to have the UNIQUE constraint.
Argument | Type | Required | Default | Description |
---|---|---|---|---|
No arguments |
Example:
SchemaBuilder
schema.create( "email", function( table ) {
table.string( email" ).unique();
} );
SQL (MySQL)
CREATE TABLE `users` (
`email` VARCHAR(255) NOT NULL UNIQUE
)