記錄一些有關資料庫操作的擴充套件包

lxzoliver發表於2020-03-12

逆向生成遷移檔案: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 協議》,轉載必須註明作者和本文連結

相關文章