diff --git a/beike/Repositories/PluginRepo.php b/beike/Repositories/PluginRepo.php index d9ea2147..5ccc65a6 100644 --- a/beike/Repositories/PluginRepo.php +++ b/beike/Repositories/PluginRepo.php @@ -13,6 +13,7 @@ namespace Beike\Repositories; use Beike\Models\Plugin; use Beike\Plugin\Plugin as BPlugin; +use Illuminate\Support\Facades\Artisan; use Illuminate\Support\Facades\File; use Illuminate\Database\Eloquent\Collection; use Beike\Shop\Services\TotalServices\ShippingService; @@ -42,6 +43,7 @@ class PluginRepo public static function installPlugin(BPlugin $bPlugin) { self::publishStaticFiles($bPlugin); + self::migrateDatabase($bPlugin); $type = $bPlugin->type; $code = $bPlugin->code; $plugin = Plugin::query() @@ -72,6 +74,20 @@ class PluginRepo } + /** + * 数据库迁移 + */ + public static function migrateDatabase(BPlugin $bPlugin) + { + $migrationPath = "{$bPlugin->getPath()}/Migrations"; + if (is_dir($migrationPath)) { + Artisan::call('migrate', [ + '--force' => true + ]); + } + } + + /** * 从系统卸载插件: 删除数据 * @param BPlugin $bPlugin