【问题标题】:Defining fields in Laravel 5.5 Migrations with Postgres使用 Postgres 在 Laravel 5.5 迁移中定义字段
【发布时间】:2018-05-01 11:51:34
【问题描述】:

使用 Postgres 处理 Laravel 5.5 迁移:

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(),

?

谢谢!

【问题讨论】:

    标签: php postgresql laravel migration


    【解决方案1】:

    你可以这样做:

    $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);
    });
    

    【讨论】:

      【解决方案2】:

      1) 定义字段为:

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

      方法 comment() 仅适用于 MySQL,在 Laravel 上的 Migrations 中。

      查看详情:https://laravel.com/docs/5.5/migrations#creating-columns

      2) 定义字段为:

      @alex-harris 的答案是 gob option

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

      更多详情请见:https://laravel.com/docs/5.5/migrations#column-modifiers

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-24
      • 2018-06-07
      • 2018-06-18
      • 2018-04-26
      • 2019-02-07
      • 2018-10-18
      相关资源
      最近更新 更多