逆向生成遷移檔案: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 檔案
快速匯入匯出資料庫快照: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 協議》,轉載必須註明作者和本文連結