timokoerber / laravel-json-seeder
使用JSON文件在您的Laravel应用程序中创建并使用数据库种子
Requires (Dev)
- php: ^7.1.3
- ext-json: *
- illuminate/console: ^5.6|^6|^7|^8
- illuminate/database: ^5.6|^6|^7|^8
- illuminate/filesystem: ^5.6|^6|^7|^8
- illuminate/support: ^5.6|^6|^7|^8
This package is auto-updated.
Last update: 2024-09-23 23:50:11 UTC
README
Laravel JSON Seeder
创建并使用JSON文件在您的Laravel应用程序中创建数据库种子。
这个包双向都适用!
- 将数据库导出到JSON文件
- 使用JSON文件为数据库创建种子
安装
使用Composer安装此包。建议只在开发时安装此包。
composer require timokoerber/laravel-json-seeder --dev
接下来你需要发布配置文件并使用...注册所需的命令
php artisan vendor:publish --provider="TimoKoerber\LaravelJsonSeeder\JsonSeederServiceProvider"
这将在配置文件中创建config/jsonseeder.php
,你可以在这里找到配置。
接下来将JsonSeederServiceProvider添加到config/app.php
中的providers
数组...
// config/app.php 'providers' => [ ... TimoKoerber\LaravelJsonSeeder\JsonSeederServiceProvider::class, ... ]
从数据库创建JSON种子
当然你可以手动创建JSON文件。但是如果你已经有一个良好的开发数据库,你可以轻松将其导出到JSON种子。
你可以通过调用...为数据库中的每张表创建种子
php artisan jsonseeds:create
这将为你数据库中的每张表创建一个JSON文件(例如,表users -> users.json,表posts -> posts.json等)。
如果你只想创建一张特定表(例如,users
)的种子,调用...
php artisan jsonseeds:create users
默认情况下,现有文件不会被覆盖。如果你再次调用命令,将创建一个子目录并将JSON种子存储在那里。如果你想覆盖现有种子,使用overwrite
选项如...
php artisan jsonseeds:create users -o|--overwrite
或者直接使用命令...
php artisan jsonseeds:overwrite users
播种
转到你的databas/seeds/DatabaseSeeder.php
并在run()
方法内添加JsonSeeder,如下...
// database/seeds/DatabaseSeeder.php class DatabaseSeeder extends Seeder { public function run() { $this->call(TimoKoerber\LaravelJsonSeeder\JsonDatabaseSeeder::class); } }
你现在可以使用Artisan命令
调用JSON Seeder...
php artisan db:seed
设置与配置
目录
默认情况下,你的种子将被写入或读取到/database/json
目录。如果你想使用不同的目录,可以在.env
文件中添加环境变量JSON_SEEDS_DIRECTORY
...
# .env
JSON_SEEDS_DIRECTORY=database/json
忽略表
你的数据库中可能有一些表不需要任何种子。如果你想忽略这些表,可以将它们放入/config.jsonseeder.php
中的ignore-tables
设置。
// config/jsonseeder.php 'ignore-tables' => [ 'migrations', 'failed_jobs', 'password_resets', ]
如果数据库中的表是空的,LaravelJsonSeeder将默认创建一个包含空数组的JSON文件。这可能在你想截断该表种子时很有用。如果你不希望这样,你可以更改config/jsonseeder.php
中的ignore-empty-tables
设置,这样就不会创建任何JSON种子。
// config/jsonseeder.php 'ignore-empty-tables' => true
重要!!!不要忘记编辑配置文件后清除缓存:
php artisan cache:clear
环境
环境变量JSON_SEEDS_DIRECTORY
可能在你使用种子进行单元测试并希望使用不同的种子时很有用。
- database
- json
- development
- comapanies.json
- users.json
- posts.json
- testing
- users.json
- posts.json
开发
# .env
JSON_SEEDS_DIRECTORY=database/json/development
测试
// phpunit.xml <phpunit> <php> <env name="JSON_SEEDS_DIRECTORY" value="database/json/testing"/> </php> </phpunit>
错误与警告
许可
版权© Timo Körber
Laravel JSON Seeder是开源软件,根据MIT许可授权。