我的 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(使用前将#替换为@)