我正在运行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');