如何在 Yii2 中设置默认模式

2023-11-21

我的 Yii2 安装了 PostgreSQL。我喜欢为每个项目使用架构,而不是为每个项目使用单独的数据库。稍后设置的问题是我无法弄清楚如何通过配置选择默认架构“defaultSchema”。

我的迁移表有问题,因为当我运行迁移命令时它默认为“公共”架构。默认的“公共”模式还阻止使用数据库用户的 search_path。虽然我使用“search_path=myschema, public”设置了我的数据库用户,但如果没有额外的配置,我仍然无法使用迁移,因为在运行时 Yii 会在表名称中查找架构,如果没有提供,则回退到 defaultSchema,所以无论如何您在数据库用户的 search_path 中拥有的内容仍将使用“public.migrations”。

在 Yii2 中设置默认模式的最佳方法是什么?是否有指定用于模式选择的配置参数?毕竟每个连接都会使用一个模式,最好通过连接配置来设置它。


尝试使用 db.php 的这个变体来指定 defaultSchema

return [
    'class' => 'yii\db\Connection',
    'dsn' => 'pgsql:host=localhost;dbname=db_name', 
    'username' => 'db_username',
    'password' => 'db_password',
    'charset' => 'utf8',
    'schemaMap' => [
      'pgsql'=> [
        'class'=>'yii\db\pgsql\Schema',
        'defaultSchema' => 'public' //specify your schema here
      ]
    ], // PostgreSQL
];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Yii2 中设置默认模式 的相关文章

随机推荐

  • 理解 nth-child(an + b):CSS3 中带有公式的选择器?

    The i 用于第一个图标和子元素 div 应该有一个大图标 任何其他 i 任何的孩子 div 但不是第一个 应该有一个中等大小的图标 div class row list item div class span1 i class icon
  • HTML 单选按钮允许多项选择

    在我的 HTML 表单中 我有以下一组单选按钮 具体取决于您选择的单选按钮取决于下一个表单 fieldset 据透露 这一切都有效 问题是由于某种原因 它们像复选框一样工作 而不是单选按钮 因此 您可以选择所有选项 而不仅仅是一次选择一个选
  • 如何测试 Akka actor 是在 Scala 中创建的

    我正在尝试编写一个测试来验证下面的演员是否正在创建一个 heartBeatExpireWorker 和一个 heartBeatAccepter 但我不知道该怎么做 首先 我想我可以使用 Mockhito 模拟或间谍来代替上下文 然后验证我是
  • 使用 jsch 库复制 sftp 中的文件

    import com jcraft jsch public class App public static void main String args JSch jsch new JSch Session session null try
  • RecordNotFound 带有accepts_nested_attributes_for 和belongs_to

    I get ActiveRecord RecordNotFound 无法为 ID 的订单找到 ID 3 的客户端 当尝试为现有客户提交订单时 这是通过表单或控制台输入以下内容来实现的 Order new client attributes
  • 将值从一个 Python 程序传递到另一个

    除了使用 txt 虚拟文件之类的东西之外 是否可以将值从一个程序传递到另一个程序 我有一个程序 它使用 txt 文件将起始值传递给另一个程序 每次运行程序时 我都会在启动程序之间更新文件中的值 十次 基本上是同时 这样做很好 但我想让 子
  • R将传统图和ggplot2放在一起[重复]

    这个问题在这里已经有答案了 我有两张图表 一张地图是用ggplot2像这样 w lt ggplot geom polygon data dep shp df aes x long y lat group group fill classJe
  • 更改谷歌地图 api v2 中标记的 InfoWindow 视图的边距颜色

    你好 我尝试将默认颜色 白色 更改为黑色 这是在谷歌地图 API v2 中 有人知道我该怎么做吗 PD 是信息窗口的边距 这是我的代码 我在其中更改信息窗口的内容 但需要更改边距 S GoogleMap map map setInfoWin
  • Swift:$0 在 Array.forEach 中如何工作?

    我看到大多数 swift 开发人员都开始使用 forEach 了解它是迭代数组的另一种方式 但 0 的含义是什么以及它是如何工作的 如果它是一个索引那么它应该增加 0 1 2 IBOutlet var headingLabels UILab
  • 在 Javascript 整数中放置逗号

    所以我在 Javascript 中有一个值 var val Entry val 该值的一个示例是277385 我如何在 Javascript 中将此数字转换为277 385 以及任何数字 以便它在正确的位置有逗号 function addC
  • IE 仅在按 F12 后才运行 JavaScript

    I have a strange problem in Internet Explorer with JavaScript In every browser I did the test the JavaScript is enabled
  • 如何获取分支开始的信息?

    据我所知 提交对象仅包含有关父母的信息 所以如果我遇到这样的情况 branch 1 o o master o 这相当于 branch 1 o o master o 但如果我的主人继续前进怎么办 o master o branch 1 o o
  • Android Room - 处理对象中的对象列表并查询结果

    我正在使用 Android 的 Room 数据库 并且在理解如何执行以下操作时遇到了一些大问题 当我添加一个Person到数据库中 它添加所有变量 例如List
  • mysql 时间戳转换/格式化注意:遇到格式不正确的数值

    在我的数据库中 我已将 发布 行设置为时间戳 但在尝试转换 格式化它时我收到此通知 Notice A non well formed numeric value encountered code posted date d m Y H i
  • 64位.NET性能调优

    我知道 NET is JIT在应用程序运行之前编译为您正在运行的架构 但是 JIT 编译器是否针对 64 位架构进行了优化 在编写将在计算机上运行的应用程序时 有什么需要做或考虑的吗 64bit system 即使用 Int64 会提高性能
  • 在 Web Worker 仍在运行时向其发送消息

    假设我们有一个 Web Worker 引用一个名为 worker js 的文件 我们使用worker来执行 worker js 中的一个函数 该函数执行一些冗长的操作 我们调用将相应的消息发布给工作人员并在主线程中继续 然而 在工作线程完成
  • 用“...”主体缩短字符串

    就像 iPhone 的应用程序名称很长一样 名称也会缩短 我真的很喜欢这种缩短名称或字符串的方法 而不是在其中附加 子句 抱歉 如果我感到困惑 我无法解释我想要做什么 所以我将展示一个例子 这就是我所拥有的 将 附加到缩短的字符串 在 PH
  • 应用程序小部件 setImageViewUri 不更新图像

    我有一个应用程序小部件 其中仅包含一个图像视图 我重新绘制该图像并将其作为 png 存储在应用程序的私有内存中 然后我使用 uri widget setImageViewUri R id widget icon uri 设置 RemoteV
  • 来自查询的 mysqldump

    如何从查询中为表创建 mysql 转储 我需要这样的东西 mysqldump uroot pxxxx mydb select from table where name 1 gt tmp a Thanks mysqldump 有一个 whe
  • 如何在 Yii2 中设置默认模式

    我的 Yii2 安装了 PostgreSQL 我喜欢为每个项目使用架构 而不是为每个项目使用单独的数据库 稍后设置的问题是我无法弄清楚如何通过配置选择默认架构 defaultSchema 我的迁移表有问题 因为当我运行迁移命令时它默认为 公