我使用命令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,但无法连接。我该如何修复它以便它确实创建了它应该的表格。
答案 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
以运行迁移。