Laravel 5.1刷新并播种单个表

uhry853o  于 2023-05-08  发布在  其他
关注(0)|答案(8)|浏览(123)

我希望在Laravel 5.1中刷新和播种一个表。这可能吗
我尝试了下面的,但它给出了一个错误(不正确的语法)。

php artisan migrate:refresh --path=database/migrations/CreateTableTimesheet

如果我用途:php artisan migrate:refresh,它只是说:
没有要迁移的内容

ar7v8xwq

ar7v8xwq1#

您可以使用migrate:refresh命令回滚所有迁移,然后执行migrate命令。此命令有效地重新创建整个数据库:

php artisan migrate:refresh

您可以使用--class选项来指定要单独运行的特定seeder类:

php artisan db:seed --class=UserTableSeeder

完整的代码将是:

php artisan migrate:refresh
php artisan db:seed --class=UserTableSeeder

希望这能帮上忙。

lp0sw83n

lp0sw83n2#

最好先截断相同的表,然后再播种:

public function run()
{
    Table::truncate();
    //seed your table here
}

然后你可以运行你的相同的播种机像这样:

php artisan db:seed --class=YourSeeder
8i9zcol2

8i9zcol23#

也许首先只是备份数据库,删除它并检查整个播种,迁移和刷新机制是否正常工作。但首先是自动卸载。

vnzz0bqm

vnzz0bqm4#

我不认为到目前为止有任何答案解决了迁移和播种一个单个表的问题。因此,给定迁移文件database/migrations/create_foo_table.php和种子文件database/seeds/FooTableSeeder.php(其中包含FooTableSeeder种子类),您可以执行以下操作:

php artisan migrate:refresh --path=database/migrations/create_foo_table.php
php artisan db:seed --class=FooTableSeeder

这将回滚、迁移和播种您的Foo表。参见:Laravel 5.1文档中的回滚迁移和运行种子(在撰写本文时,Laravel 7.x已经发布,语法没有改变)。

06odsfpq

06odsfpq5#

php artisan tinker
>>> App\Status::truncate()

将清除状态表
所以你可以

>>> App\{MODEL_CLASS}::truncate()

我发现当我不想清除所有的表时,这非常有用,特别是用户。

webghufk

webghufk6#

包括完整表名
范例

php artisan migrate:refresh --path='database/migrations/2014_10_12_000000_create_table_timesheet.php'
polkgigr

polkgigr7#

你可以通过两个步骤来完成:
1.刷新您的特定表:

php artisan migrate:refresh --path=database/migrations/00_create_foo_table.php
  1. database/seeds/DatabaseSeeder.php中设置的种子表:
composer dump-autoload
php artisan db:seed

===额外信息===

您可以注解您不想在DatabaseSeeder.php中使用的seeder:

<?php

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     *
     * @return void
     */
    public function run()
    {
        $this->call([
            FooSeeder::class,
            // BarSeeder::class,
            // UserSeeder::class,
        ]);
    }
}

在这个例子中,只传递database/seeds/FooSeeder.php

llew8vvj

llew8vvj8#

Laravel Framework的运行迁移、roleback、刷新和seeder特定文件提示
迁移

php artisan migrate --path=/database/migrations/fileName.php

罗尔贝克

php artisan migrate:rollback --path=/database/migrations/fileName.php

刷新

php artisan migrate:refresh --path=/database/migrations/fileName.php

播种机

php artisan db:seed --class=classNameTableSeeder

谢谢

相关问题