Laravel为已存在模型执行迁移命令无待迁移内容、未创建对应数据表
解决方法
核心原因
php artisan make:model默认仅生成模型文件,不会同步创建迁移文件;若执行make:migration时未指定表标识、或执行migrate时迁移已被系统记录,就会出现无待处理内容的提示。
分步操作
- 第一步:生成对应迁移文件
执行命令:
执行后会在php artisan make:migration create_notifications_table --create=notificationsdatabase/migrations/目录生成对应迁移文件,Laravel默认将模型名转复数蛇形作为表名,Notification对应的默认表名为notifications。 - 第二步:补全迁移字段定义
打开新生成的迁移文件,修改up方法内容如下:public function up() { Schema::create('notifications', function (Blueprint $table) { $table->id(); $table->foreignId('address_id')->nullable(); $table->string('business_name'); $table->string('legal_structure'); $table->string('siret_number')->nullable(); $table->string('rna_number')->nullable(); $table->timestamps(); }); } - 第三步:执行迁移
运行命令:php artisan migrate
额外说明
- 后续生成模型时可以直接携带
-m参数同步生成迁移文件,示例:php artisan make:model Notification -m - Laravel框架自带官方通知系统的
Notification类,若项目需要用到原生通知功能,建议将自定义的模型重命名避免类名冲突。 - 如果执行
php artisan migrate仍提示无待迁移内容,可先检查数据库中的migrations表是否已存在该迁移文件的记录,开发环境可直接执行php artisan migrate:fresh重置所有迁移(注意会清空全部数据库数据)。
内容的提问来源于stack exchange,提问作者CoderTn
相关产品推荐
相关产品推荐

