如何通过Laravel生成并执行数据库迁移文件?

2026-04-28 23:022阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1268个文字,预计阅读时间需要6分钟。

如何通过Laravel生成并执行数据库迁移文件?

文件名修改不会影响执行逻辑,但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:statusphp artisan migrate --pretend

直接 php artisan migrate 很快,但出错就难回退。

阅读全文
标签:Laravel

本文共计1268个文字,预计阅读时间需要6分钟。

如何通过Laravel生成并执行数据库迁移文件?

文件名修改不会影响执行逻辑,但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:statusphp artisan migrate --pretend

直接 php artisan migrate 很快,但出错就难回退。

阅读全文
标签:Laravel