gpt4 book ai didi

php - 在 Laravel 5.5 Migrations with Postgres 中定义字段

转载 作者:行者123 更新时间:2023-11-29 14:34:18 26 4
gpt4 key购买 nike

使用 Laravel 5.5 迁移和 Postgres :

1) 定义字段为:

$table->enum('is_applied', ['Y', 'N']) ->comment('Y => is_applied, N=> Is not applied');

接下来我在生成的表中看到:

is_applied varchar(255) NOT NULL,
CONSTRAINT cs_tmp_csvps_is_applied_check CHECK (((is_applied)::text = ANY ((ARRAY['Y'::character varying, 'N'::character varying])::text[]))),

实际上我想获取我在 Postgres 中使用的 sql 类型:

CREATE TYPE type_cms_item_content_type AS ENUM (
'P',
'M',
'H'
);

content_type type_cms_item_content_type NOT NULL DEFAULT 'P'::type_cms_item_content_type,

这可能吗?

2) 定义字段为:

$table->timestamps();

我创建了 2 个字段 created_at 和 updated_at。因为我只需要创建 created_at 我可以写:

$table->dateTime('created_at');

但是有没有办法在服务器上设置默认时间,比如:

created_at timestamp NOT NULL DEFAULT now(),

?

谢谢!

最佳答案

你可以这样做:

$table->timestamp('created_at')->useCurrent();

时间戳问题。如果你真的想要精确的 sql 更改,你总是可以在迁移中执行原始 sql 语句:

Schema::table('content_type', function(Blueprint $table){
$sql = 'CREATE TYPE type_cms_item_content_type AS ENUM (
`P`,
`M`,
`H`
);

content_type type_cms_item_content_type NOT NULL DEFAULT `P`::type_cms_item_content_type';
DB::connection()->getPdo()->exec($sql);
});

关于php - 在 Laravel 5.5 Migrations with Postgres 中定义字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47355115/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com