在 laravel 中迁移特定表

Posted

技术标签:

【中文标题】在 laravel 中迁移特定表【英文标题】:migrating a specific table in laravel 【发布时间】:2016-06-19 06:37:05 【问题描述】:

使用命令php artisan migrate 迁移所有表。但我有员工表,我与其他表一起迁移。但它没有被迁移(我在 phpmyadmin 中看不到它)。现在,当我再次使用 php artisan migrate 命令时,它不会显示任何要迁移的内容。如何迁移该特定员工表?

<?php

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

class Employees extends Migration

    public function up()
    
        Schema::create('employees', function (Blueprint $table) 
            $table->increments('id');
            $table->string('name');
            $table->string('email')->unique();
            $table->string('contact_number');
            $table->timestamps();       
        );

        $faker = Faker\Factory::create();

        $limit = 33;

        for ($i = 0; $i < $limit; $i++) 
            DB::table('employees')->insert([ //,
                'name' => $faker->name,
                'email' => $faker->unique()->email,
                'contact_number' => $faker->phoneNumber,
            ]);
        
    

    public function down()
    
        Schema::drop('employees');
    

【问题讨论】:

您在运行php artisan migrate 时是否遇到任何错误?附带说明一下,您不应该在迁移中看到数据库,这就是 Seeder Classes 的用途。 没有任何错误。它没有显示任何要迁移的内容。@Bogdan 那么很可能是employees表迁移过。您之前是否运行过该迁移。如果你这样做了,你需要回滚它。您可以检查数据库的migrations 表,看看是否可以找到迁移文件名。如果它在最后一批中,那么您可以使用 php artisan migrate:rollback 撤消这些更改并尝试再次运行它。 尝试 php artisan migrate:refresh 然后查看该表是否已迁移。否则,根据我的猜测,没有办法迁移单个表。 看看这个answer为我工作。 【参考方案1】:

对于特定文件运行此命令:

php artisan migrate path="database\migrations\Your_Migration_File_Name_table.php"

【讨论】:

以上是关于在 laravel 中迁移特定表的主要内容,如果未能解决你的问题,请参考以下文章

如何迁移:在 laravel 5 中回滚特定表

如何在 laravel 中运行特定迁移 [重复]

再次迁移特定表 laravel

Laravel 迁移:使用 artisan 命令删除特定表并删除迁移文件

特定表迁移laravel中的错误

每个数据库使用一个 Laravel 迁移表