Laravel 不会在刷新时在“迁移”表中创建记录
Posted
技术标签:
【中文标题】Laravel 不会在刷新时在“迁移”表中创建记录【英文标题】:Laravel does not create a record in `migrations` table on refresh 【发布时间】:2018-11-02 01:44:37 【问题描述】:我有一个尴尬的问题,每运行一次php artisan migrate:refresh --seed
migrations
表是空的,虽然它应该在迁移后添加初始迁移记录:2018_05_02_114819_add_initial_migration
这是我的迁移代码(它是旧数据库模式的导入):
<?php
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class AddInitialMigration extends Migration
/**
* Run the migrations.
*
* @return void
*/
public function up()
if(!Schema::hasTable('users'))
DB::unprepared(File::get(database_path('sam.sql')));
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
DB::statement('SET FOREIGN_KEY_CHECKS=0');
foreach (DB::select('SHOW TABLES') as $table)
$table_array = get_object_vars($table);
if($table_array[key($table_array)] !== 'migrations')
DB::statement('DROP TABLE ' . $table_array[key($table_array)]);
DB::statement('SET FOREIGN_KEY_CHECKS=1');
【问题讨论】:
【参考方案1】:我发现了。似乎在 .sql 文件中有一行说:
SET AUTOCOMMIT = 0;
在文件末尾没有设置回 1。
【讨论】:
我本可以搜索很长时间,以为是 Laravel 错误,但 Google 搜索救了我。谢谢!以上是关于Laravel 不会在刷新时在“迁移”表中创建记录的主要内容,如果未能解决你的问题,请参考以下文章