【问题标题】:How to set table schema at table name with Cake?如何使用 Cake 在表名处设置表模式?
【发布时间】:2017-11-17 21:24:13
【问题描述】:

PostgreSQL、Oracle 等很多 DBMS 都使用 SCHEMA,所以,表名是

schema_name.table_name

但是 CakePHP 的手册并没有说明这一点。 CakePHP 默认值中的模型、视图和控制器名称怎么样?我可以使用前缀之类的解决方案,也就是说,在所有数据库操作中都将使用相同的模式名称。


PS1:请不要与method Modelschema 混淆,以及有关访问此方法的问题。

PS2:Bill's 2006 solution 不是更好的,因为没有更新(我使用的是 CakePHP2)并且不是“官方 cakePHP 解决方案”。

PS3:database.php 有一些架构属性吗? CakePHP 文档的链接是什么?

【问题讨论】:

  • 您在 database.php 中指定了架构...还是您要求为每个查询选择架构?
  • 嗯,我需要这两种解决方案,但第一个是一个好的开始......请参阅(编辑)PS3,我可以指定前缀class DATABASE_CONFIG {... $default 'schema' => 'MySCHEMA', ... }吗?

标签: postgresql cakephp


【解决方案1】:

对我来说好消息,有CakePHP 2.0 documentation about SQL-Schema...没有其他文档或示例,只是一个起点...

【讨论】:

    【解决方案2】:

    在 CakePHP 中你必须定义更多的数据库配置。

    在 CakePHP 2 中:

    • 将“模式”参数设置为您的配置
    • 为您的所有架构创建新配置
    • 在模型中使用正确的架构

    例如数据库配置:

    public $default = array(
            'datasource' => 'Database/Postgres',
            'persistent' => false,
            'host'       => 'localhost',
            'login'      => 'my_db_user', 
            'password'   => 'my_db_passw', 
            'database'   => 'my_project_db', 
            'prefix'     => '',
            'encoding'   => 'utf8',
            'schema'     => 'postgres'
        );
    public $other_schema = array(
            'datasource' => 'Database/Postgres',
            'persistent' => false,
            'host'       => 'localhost',
            'login'      => 'my_db_user', 
            'password'   => 'my_db_passw', 
            'database'   => 'my_project_db', 
            'prefix'     => '',
            'encoding'   => 'utf8',
            'schema'     => 'other_schema'
        );
    

    如果你想在模型中使用它:

    class AppModel extends AppModel {
        public $useDbConfig = 'other_schema';
    }
    

    在CakePHP3中也是这样,只是数据库是config/app.php,你必须使用

    use Cake\Datasource\ConnectionManager;
    $connection = ConnectionManager::get('default');
    

    【讨论】:

      猜你喜欢
      • 2010-09-19
      • 2022-06-28
      • 1970-01-01
      • 1970-01-01
      • 2015-09-13
      • 2010-11-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多