记录一些有关数据库操作的扩展包

逆向生成迁移文件:xethron/migrations-generator

通过composer引入扩展包

composer require --dev "xethron/migrations-generator"

config/app.php中添加相应的服务提供者

// 省略之前内容
'providers'       => [
    // 省略之前内容
    Way\Generators\GeneratorsServiceProvider::class,
    Xethron\MigrationsGenerator\MigrationsGeneratorServiceProvider::class,
],
// 省略之后内容

注册服务,在app/Providers/AppServiceProvider.php中register()方法里添加

// 仅在开发环境中使用
if ($this->app->environment() !== 'production') {
    $this->app->register(\Way\Generators\GeneratorsServiceProvider::class);
    $this->app->register(\Xethron\MigrationsGenerator\MigrationsGeneratorServiceProvider::class);
}

生成迁移文件

在项目根目录运行:

php  artisan  migrate:generate

接下来会让你确认

记录一些关于数据库操作的扩展包

这样就将已有的数据表,批量生成迁移文件啦,可以在database/migrations目录里查看是否生成了迁移文件呢。

后续的开发可以是Migrations维护数据结构了。

你也可以指定某张表生成迁移文件

php artisan migrate:generate table1,table2,table3

也可以反向忽略某些表

php artisan migrate:generate --ignore="table3,table4,table5"

更多用法,请使用help查看

php  artisan  help  migrate:generate

转载自这里laravel逆向生成迁移文件

导出表数据:orangehill/iseed

通过composer引入扩展包:

composer require orangehill/iseed

在你的 config/app.php 文件中添加 Service Provider

'providers' => [

...

Orangehill\Iseed\IseedServiceProvider::class,

],

基本使用

导出指定表的数据

在 php artisan iseed 后面带上本地数据表的名称, 可直接将数据库表的内容转换为 seeder 文件.

如下可生成 users 表的 seeder 文件:

php artisan iseed users

也可选择同时生成 users 和 topics seeder 文件:

php artisan iseed users,topics

强制覆盖导出文件 – force

在命令行后面带上 force 参数, 将强制覆盖原有生成的 seeder 文件, 如下:

php artisan iseed users --force

将直接覆盖之前生成的 UsersTableSeeder.php 文件

转载自这里Laravel使用iseed扩展导出表数据

快速导入导出数据库快照:spatie/laravel-db-snapshots

通过composer引入扩展包

composer require spatie/laravel-db-snapshots

然后打开配置文件 config/filesystem.php,在 disks 中新增 snapshots 配置项:

// ...
'disks' => [
    // ...
    'snapshots' => [
        'driver' => 'local',
        'root' => database_path('snapshots'),
    ],
// ...

如果你需要对 laravel-db-snapshots 扩展包进行更多自定义配置,还可以发布扩展包的配置文件到 config 目录下:

php artisan vendor:publish --provider="Spatie\DbSnapshots\DbSnapshotsServiceProvider" --tag="config"

记录一些关于数据库操作的扩展包

使用入门

laravel-db-snapshots 扩展包通过 Artisan 命令对数据库快照进行管理。

创建快照

我们可以通过 Artisan 命令 snapshot:create 创建快照(快照名称可选,默认是日期时间作为快照名),也就是导出数据库:

php artisan snapshot:create my-first-dump

记录一些关于数据库操作的扩展包

我们可以在 database/snapshots 目录下看到刚刚生成的快照文件:

记录一些关于数据库操作的扩展包

还可以在创建时对快照进行压缩:

php artisan snapshot:create --compress

可以看到,生成的快照文件相较于不压缩的时候小了很多。

加载快照

可以通过 Artisan 命令 snapshot:load 加载快照到数据库,也就是导入数据库:

php artisan snapshot:load my-first-dump

还可以在导入时指定数据库连接名称:

php artisan snapshot:load my-first-dump --connection=connectionName

查看快照列表

我们可以通过 Artisan 命令 snapshot:list 查看所有快照列表:

php artisan snapshot:list

记录一些关于数据库操作的扩展包

删除快照

最后,还可以通过 Artisan 命令 snapshot:delete 删除指定快照:

php artisan snapshot:delete my-first-dump

触发事件

在对数据库快照进行创建、加载、删除等操作时,会触发相应的数据库事件,你可以在应用中对这些事件进行监听和自定义处理:

  • Spatie\DbSnapshots\Events\CreatingSnapshot: 快照创建前触发
  • Spatie\DbSnapshots\Events\CreatedSnapshot: 快照创建后触发
  • Spatie\DbSnapshots\Events\LoadingSnapshot: 快照加载前触发
  • Spatie\DbSnapshots\Events\LoadedSnapshot: 快照加载后触发
  • Spatie\DbSnapshots\Events\DeletingSnapshot: 快照删除前触发
  • Spatie\DbSnapshots\Events\DeletedSnapshot: 快照删除后触发

转载自这里基于 Laravel 扩展包 laravel-db-snapshots 快速导入导出数据库快照

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!