Laravel 5.3迁移不会创建表

时间:2016-12-21 20:53:36

标签: php laravel laravel-5.3 artisan-migrate

我使用命令php artisan migrate:make创建了一些迁移,然后填充它并将其保存为一些字段。这是一个全新的安装和第一次迁移。

我运行了php artisan migrate并且迁移成功完成。但是,虽然创建了迁移表 IS ,并且它具有文件名和批处理1的单行,但没有表。

这是我的迁移文件代码:     

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

class CreateFuelLocationsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        //
        Schema::create('fuel_locations', function (Blueprint $table) {
            $table->increments('id');
            $table->string('uid');
            $table->string('name');
            $table->string('fuel_type');
            $table->string('email');
            $table->string('street');
            $table->string('city');
            $table->string('state');
            $table->string('zip');
            $table->string('phone');
            $table->string('service_hours');
            $table->string('payment_methods');
            $table->string('payment_method_other');
            $table->decimal('latitude', 3, 7);
            $table->decimal('longitude', 3, 7);
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        //
        Schema::dropIfExists('fuel_locations');
    }
}

我的config / database.php中有几行:

    'mysql' => [
        'driver' => 'mysql',
        'database' => 'mydb',
        'host' => 'localhost',
        'username' => 'root',
        'password' => '',
        'charset'   => env('DB_CHARSET', 'utf8'),
        'collation' => env('DB_COLLATION', 'utf8_unicode_ci'),
        'prefix'    => env('DB_PREFIX', ''),
        'timezone'  => env('DB_TIMEZONE', '+00:00'),
        'strict'    => env('DB_STRICT_MODE', false),
    ],

我确实尝试将主机更改为127.0.0.1,但无法连接。我该如何修复它以便它确实创建了它应该的表格。

2 个答案:

答案 0 :(得分:1)

问题在于以下几行:

$table->decimal('latitude', 3, 7);
$table->decimal('longitude', 3, 7);

您应该收到与以下内容类似的异常

  

[PDOException] SQLSTATE [42000]:语法错误或访问冲突:1427   对于float(M,D),double(M,D)或十进制(M,D),M必须> = D(列   '纬度')。

进行迁移时。

更改为以下

$table->decimal('latitude', 10, 7);
$table->decimal('longitude', 10, 7);

它应该有用。

Numeric precision refers to the maximum number of digits that are present in the number

答案 1 :(得分:0)

如果您没有收到任何错误,请尝试运行Graph注册迁移,然后运行composer dumpauto以运行迁移。