如何通过Laravel生成并执行数据库迁移文件?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1268个文字,预计阅读时间需要6分钟。
文件名修改不会影响执行逻辑,但Laravel会检查文件名是否包含特定前缀,如create_或add_,来自动填充模板内容。例如,php artisan make:migration create_users_table会生成带有Schema::create(')的空表结构;而php artisan make:migration add_phone_to_users_table则默认使用Schema::table('),适用于添加字段。
常见错误是手误写成 create_user_table(少个 s),结果生成的迁移里表名是 user,上线后报 Table 'user' doesn't exist —— 因为 Laravel 默认复数表名,且多数约定是 users。
- 命名建议统一用复数 +
_table后缀,如create_posts_table - 如果想跳过自动模板、完全自定义,加
--plain参数:php artisan make:migration rename_user_email --plain - 别依赖文件名推断逻辑,打开生成的文件第一眼确认
up()里调用的是create()还是table()
执行迁移前,先看 php artisan migrate:status 和 php artisan migrate --pretend
直接 php artisan migrate 很快,但出错就难回退。
本文共计1268个文字,预计阅读时间需要6分钟。
文件名修改不会影响执行逻辑,但Laravel会检查文件名是否包含特定前缀,如create_或add_,来自动填充模板内容。例如,php artisan make:migration create_users_table会生成带有Schema::create(')的空表结构;而php artisan make:migration add_phone_to_users_table则默认使用Schema::table('),适用于添加字段。
常见错误是手误写成 create_user_table(少个 s),结果生成的迁移里表名是 user,上线后报 Table 'user' doesn't exist —— 因为 Laravel 默认复数表名,且多数约定是 users。
- 命名建议统一用复数 +
_table后缀,如create_posts_table - 如果想跳过自动模板、完全自定义,加
--plain参数:php artisan make:migration rename_user_email --plain - 别依赖文件名推断逻辑,打开生成的文件第一眼确认
up()里调用的是create()还是table()
执行迁移前,先看 php artisan migrate:status 和 php artisan migrate --pretend
直接 php artisan migrate 很快,但出错就难回退。

