我的项目是基于多租户SaaS。
我有多个客户(公司),每个客户都有多个用户——他们都将使用相同的数据库布局。
每个客户都有自己的数据库,因此在用户身份验证期间,我想构建一个主数据库,将用户与该用户的公司数据库相关联。
每个数据库的结构都是相同的……只是数据不同。
这样我们就可以为不同的公司保留不同的数据库,这样就不会在数据库中混入数据。
编写应用程序时,客户端的数量(以及数据库的数量)是未知的,因此不可能在引导脚本中包含所有连接。
现在,我想要做的是,动态更改引导程序中的数据库连接,或者能够为登录的用户动态创建新连接。在 Yii 中是否有一个简单的解决方案并且仍然使用 AR ,查询建设者?
我看到了这个解决方案,但对我不起作用http://www.yiiframework.com/forum/index.php?/topic/5385-dynamic-db-connection/
这就是我今天的配置文件对于运行一个数据库的脚本的外观,我想调用一个主数据库来控制用户属于哪个数据库以及应用程序在 Yii 中使用,知道吗?
<? php
$language = 'en';
$currencyBaseCode = 'USD';
$theme = 'default';
$connectionString = 'mysql:host=localhost;port=3306;dbname=master';
$username = 'root';
$password = 'YOUR PASS';
$memcacheServers = array( // An empty array means memcache is not used.
array(
'host' => '127.0.0.1',
'port' => 11211, // This is the default memcached port.
'weight' => 100,
),
);
$adminEmail = 'EMAIL ADDRESS';
$installed = true; // Set to true by the installation process.
$maintenanceMode = false; // Set to true during upgrade process or other maintenance tasks.
$instanceConfig = array(); //Set any parameters you want to have merged into configuration array.
//@see CustomManagement
$instanceConfig['components']['request']['hostInfo'] = 'website url';
$instanceConfig['components']['request']['scriptUrl'] = '/app/index.php';
$urlManager = array (); // Set any parameters you want to customize url manager.
? >