【发布时间】:2021-03-31 08:56:18
【问题描述】:
我知道有一个与 postgres 类似的问题,但它使用原始 Sql,我正在寻找一个 laravel 迁移友好的 ORM 解决方案。这就是为什么这个问题是不同的。从长远来看,这可能是正确的答案,但我想我会向社区提出。
有时我的数据集是表格,有时是视图。如果我们正在运行单元测试构建,它以表的形式存在,但在其他任何地方它都是视图。
这就是我得到的。 显然这不是主意。这不是一个准确的条件。虽然它可以在我想要的时候执行,但它不是真正检查视图是否存在。我想要一种方法来检查 postgres 架构以查看视图是否存在。
if ('dev' === env('APP_ENV') || 'production' === env('APP_ENV')) {
$sql = 'DROP VIEW IF EXISTS backend.friends';
DB::statement($sql);
} else {
Schema::dropIfExists('backend.friends');
}
主要是我需要一个条件。像这样的东西。 有什么好的堆栈朋友吗?
if (backed.friends) == view {
$sql = 'DROP VIEW IF EXISTS backend.partners';
} else {
Schema::dropIfExists('backend.friends');
}
谢谢!
【问题讨论】:
-
这个插件可能对你有用:github.com/staudenmeir/laravel-migration-views。它允许您简单地调用
Schema::dropIfExists('backend.friends');和Schema::dropViewIfExists('backend.friends');,因此您根本不需要条件。ifExists部分将为您简单地处理它:) -
刚开始回答这个问题!我想至少有一个其他组织/人需要一种简单的方法来谷歌搜索这个答案。再次感谢蒂姆!
标签: php laravel postgresql eloquent