我希望在Laravel 5.1中刷新和播种一个表。这可能吗我尝试了下面的,但它给出了一个错误(不正确的语法)。
php artisan migrate:refresh --path=database/migrations/CreateTableTimesheet
如果我用途:php artisan migrate:refresh,它只是说:没有要迁移的内容
php artisan migrate:refresh
ar7v8xwq1#
您可以使用migrate:refresh命令回滚所有迁移,然后执行migrate命令。此命令有效地重新创建整个数据库:
migrate:refresh
migrate
您可以使用--class选项来指定要单独运行的特定seeder类:
--class
php artisan db:seed --class=UserTableSeeder
完整的代码将是:
php artisan migrate:refresh php artisan db:seed --class=UserTableSeeder
希望这能帮上忙。
lp0sw83n2#
最好先截断相同的表,然后再播种:
public function run() { Table::truncate(); //seed your table here }
然后你可以运行你的相同的播种机像这样:
php artisan db:seed --class=YourSeeder
8i9zcol23#
也许首先只是备份数据库,删除它并检查整个播种,迁移和刷新机制是否正常工作。但首先是自动卸载。
vnzz0bqm4#
我不认为到目前为止有任何答案解决了迁移和播种一个单个表的问题。因此,给定迁移文件database/migrations/create_foo_table.php和种子文件database/seeds/FooTableSeeder.php(其中包含FooTableSeeder种子类),您可以执行以下操作:
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已经发布,语法没有改变)。
06odsfpq5#
php artisan tinker
>>> App\Status::truncate()
将清除状态表所以你可以
>>> App\{MODEL_CLASS}::truncate()
我发现当我不想清除所有的表时,这非常有用,特别是用户。
webghufk6#
包括完整表名范例
php artisan migrate:refresh --path='database/migrations/2014_10_12_000000_create_table_timesheet.php'
polkgigr7#
你可以通过两个步骤来完成:1.刷新您的特定表:
php artisan migrate:refresh --path=database/migrations/00_create_foo_table.php
database/seeds/DatabaseSeeder.php
composer dump-autoload php artisan db:seed
===额外信息===
您可以注解您不想在DatabaseSeeder.php中使用的seeder:
DatabaseSeeder.php
<?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。
database/seeds/FooSeeder.php
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
谢谢
8条答案
按热度按时间ar7v8xwq1#
您可以使用
migrate:refresh
命令回滚所有迁移,然后执行migrate
命令。此命令有效地重新创建整个数据库:您可以使用
--class
选项来指定要单独运行的特定seeder类:完整的代码将是:
希望这能帮上忙。
lp0sw83n2#
最好先截断相同的表,然后再播种:
然后你可以运行你的相同的播种机像这样:
8i9zcol23#
也许首先只是备份数据库,删除它并检查整个播种,迁移和刷新机制是否正常工作。但首先是自动卸载。
vnzz0bqm4#
我不认为到目前为止有任何答案解决了迁移和播种一个单个表的问题。因此,给定迁移文件
database/migrations/create_foo_table.php
和种子文件database/seeds/FooTableSeeder.php
(其中包含FooTableSeeder
种子类),您可以执行以下操作:这将回滚、迁移和播种您的Foo表。参见:Laravel 5.1文档中的回滚迁移和运行种子(在撰写本文时,Laravel 7.x已经发布,语法没有改变)。
06odsfpq5#
将清除状态表
所以你可以
我发现当我不想清除所有的表时,这非常有用,特别是用户。
webghufk6#
包括完整表名
范例
polkgigr7#
你可以通过两个步骤来完成:
1.刷新您的特定表:
database/seeds/DatabaseSeeder.php
中设置的种子表:===额外信息===
您可以注解您不想在
DatabaseSeeder.php
中使用的seeder:在这个例子中,只传递
database/seeds/FooSeeder.php
。llew8vvj8#
Laravel Framework的运行迁移、roleback、刷新和seeder特定文件提示
迁移
罗尔贝克
刷新
播种机
谢谢