Laravel-当使用make:migration时,数据库中创建的表会生成空的迁移文件



我正在运行Laravel的新安装,其中包含干净的数据库和文件。

我创建了一个名为"frooth"的表,它有列id、title和created_at(id PK、varchar和datetime(

当我运行"php artisan make:migration frooth"命令时,创建的迁移文件是空的,只包含up((和down((函数,没有其他(没有列(

我该如何解决这个问题,我遵循了官方网站中记录的框架的基本配置,我可以按预期在artisan中访问和创建功能,只是迁移不起作用。

我用命令生成了这个项目:composer create project--preferred dist laravel/laravel blog

create table laravel.frooth
(
id         int auto_increment
primary key,
title      varchar(250) null,
created_at datetime     null
);

在数据库/migrations/2019_10_25_012925_frooth.PHP中生成的PHP类:

<?php
use IlluminateDatabaseMigrationsMigration;
use IlluminateDatabaseSchemaBlueprint;
use IlluminateSupportFacadesSchema;
class Frooth extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
//
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
}

控制台输出:

php artisan make:migration frooth
Created Migration: 2019_10_25_012925_frooth

删除手动创建的表并删除迁移文件。

运行php artisan make:migration create_frooths_table

然后将列添加到新的迁移文件中。

类似的东西:

<?php
use IlluminateDatabaseMigrationsMigration;
use IlluminateDatabaseSchemaBlueprint;
use IlluminateSupportFacadesSchema;
class Frooth extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('frooths', function (Blueprint $table) {
$table->increments('id');
$table->string('title')->nullable();
$table->timestamps();
}); 
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('frooths');
}
}

然后运行php artisan migrate

对于id,如果使用Laravel 6 ,则可能需要使用$table->bigIncrements('id');

相关内容

  • 没有找到相关文章

最新更新