Laravel 迁移命名约定

Posted

技术标签:

【中文标题】Laravel 迁移命名约定【英文标题】:Laravel Migrations Naming Convention 【发布时间】:2015-07-05 23:24:50 【问题描述】:

在命名 Laravel 迁移时是否应遵循命名约定或指南,或者名称是否应仅具有描述性?

另外,假设您要添加 12 列来修改一个表,那么在这种情况下,如果迁移名称是描述性的,那么迁移名称会太长,那么是否有任何指导方针可以遵循?

【问题讨论】:

【参考方案1】:

它的描述性应该足以让您回顾并了解您在此迁移中对 DB 做了什么。

如果你使用 table_ 开始迁移,那么 Laravel 会添加 Schema::create。 如果你有 tofromin,那么 Laravel 会为你创建 Schema::table。这让您的生活更轻松。

我通常根据功能命名迁移,例如 implement_user_roles 或 make_employee_profile_editable。

【讨论】:

我相信如果您不以带下划线的日期开始迁移,迁移会失败。【参考方案2】:

确保你的模型没有使用相同的类名,它仍然有效,但为了理解,

例如,如果您正在创建,请输入 create_,或者

如果表格是相互透视的,请将其设置为 article_comment,以确保您在 5 个月后尝试更改时能够理解 :)

【讨论】:

【参考方案3】:

根据\Illuminate\Database\Console\Migrations\TableGuesser类源,猜测迁移表和存根类型有两种默认模式。

const CREATE_PATTERNS = [
    '/^create_(\w+)_table$/',
    '/^create_(\w+)$/',
];

const CHANGE_PATTERNS = [
    '/_(to|from|in)_(\w+)_table$/',
    '/_(to|from|in)_(\w+)$/',
];

【讨论】:

以上是关于Laravel 迁移命名约定的主要内容,如果未能解决你的问题,请参考以下文章

markdown 遵循Laravel命名约定

Laravel 中多对多关系中连接表的命名约定

Laravel Eloquent ORM 关系命名约定

使用迁移重命名laravel中的列

Laravel 5.0 - 在 1 个迁移中重命名多个列

Laravel:重命名数据库表中断功能