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

时间:2019-10-25 02:16:25

标签: php laravel mariadb laravel-migrations laravel-6.2

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

我创建了一个名为“ frooth”的表,它具有列id,标题和created_at(id PK,varchar和datetime)

当我运行“ php artisan make:migration frooth”命令时,创建的迁移文件为空,仅包含up()和down()函数,仅包含任何内容(无列)

如何解决此问题,我遵循了官方网站上记录的框架的基本配置,因此可以按预期方式在artisan中访问和创建功能,只是无法进行迁移。

我使用以下命令生成了项目:composer create-project --prefer-dist laravel / laravel博客

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

在database / migrations / 2019_10_25_012925_frooth.php中生成的PHP类:

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

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

1 个答案:

答案 0 :(得分:0)

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

运行php artisan make:migration create_frooths_table

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

类似的东西:

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

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');