Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 05.12.2017 18:19:58

Как в миграции (PostgreSQL) корректно использовать default()

Привет всем!

Пытаюсь выполнить такую миграцию

public function up()
    {
        Schema::create('table1', function (Blueprint $table) {
            $table->uuid('id')->default('gen_uuid()');
            $table->string('name');
        });
    }

Получаю ошибку

SQLSTATE[22P02]: Invalid text representation: 7 ERROR:  invalid input syntax for uuid: "gen_uuid()" 
(SQL: create table "table1" ("id" uuid not null default 'gen_uuid()', "name" varchar(255) not null))

Ругается на default-значение 'gen_uuid()' в поле id.

Сформированный запрос, действительно не корректен. С точки зрения синтаксиса Postgre функция в DEFAULT для ID должна указываться без кавычек.
Т.е. запрос должен получиться таким:

create table "table1" ("id" uuid not null default gen_uuid(), "name" varchar(255) not null)

Может кто знает как с этим бороться?

Изменено liman (05.12.2017 18:29:45)

Не в сети

#2 05.12.2017 18:46:41

Re: Как в миграции (PostgreSQL) корректно использовать default()

Разобрался

            $table->uuid('id')->default(DB:raw('gen_uuid()'));

Не в сети

Подвал раздела