staudenmeir/laravel-migration-views

Laravel 数据库迁移使用 SQL 视图

v1.9.1 2024-05-17 15:33 UTC

This package is auto-updated.

Last update: 2024-09-11 18:15:24 UTC


README

CI Code Coverage Latest Stable Version Total Downloads License

此 Laravel 扩展增加了数据库迁移中对 SQL 视图的支持。

支持 Laravel 5.5+。

安装

composer require staudenmeir/laravel-migration-views:"^1.0"

如果您在 Windows 的 PowerShell 中(例如,在 VS Code 中),请使用此命令

composer require staudenmeir/laravel-migration-views:"^^^^1.0"

版本

用法

创建视图

使用 createView() 创建视图,并提供查询构建器实例或 SQL 字符串

use Staudenmeir\LaravelMigrationViews\Facades\Schema;

$query = DB::table('users')->where('active', true);

Schema::createView('active_users', $query);

您可以将视图的列作为第三个参数提供

use Staudenmeir\LaravelMigrationViews\Facades\Schema;

$query = 'select id from users where active = 1';

Schema::createView('active_users', $query, ['key']);

使用 createOrReplaceView() 创建视图或替换现有视图

use Staudenmeir\LaravelMigrationViews\Facades\Schema;

$query = DB::table('users')->where('active', true); 

Schema::createOrReplaceView('active_users', $query);

重命名视图

使用 renameView() 重命名视图

use Staudenmeir\LaravelMigrationViews\Facades\Schema;

Schema::renameView('active_users', 'users_active');

删除视图

使用 dropView()dropViewIfExists() 删除视图

use Staudenmeir\LaravelMigrationViews\Facades\Schema;

Schema::dropView('active_users');

Schema::dropViewIfExists('active_users');

如果您正在使用 php artisan migrate:fresh,则可以使用 --drop-views 删除所有视图(Laravel 5.6.26+)。

检查视图存在性

使用 hasView() 检查视图是否存在

use Staudenmeir\LaravelMigrationViews\Facades\Schema;

if (Schema::hasView('active_users')) {
    //
}

列出视图列

使用 getViewColumnListing() 获取视图的列列表

use Staudenmeir\LaravelMigrationViews\Facades\Schema;

$columns = Schema::getViewColumnListing('active_users');

物化视图

在 PostgreSQL 中,您可以使用 createMaterializedView() 创建物化视图

use Staudenmeir\LaravelMigrationViews\Facades\Schema;

$query = DB::table('users')->where('active', true);

Schema::createMaterializedView('active_users', $query);

使用 refreshMaterializedView() 刷新物化视图

Schema::refreshMaterializedView('active_users');

贡献

有关详细信息,请参阅 CONTRIBUTINGCODE OF CONDUCT