我必须在这里遗漏一些东西,因为我在config / main.php中有以下内容:
'db'=>array(
...some config...
'tablePrefix' => 'appname_'
...more config...
),
然后我创建了一个新模块(testModule)并将表名称列为'test_user':
public $userTable = '{{test_user}}';
在我的数据库迁移脚本中,我创建了如下的mysql表:
$this->createTable(Yii::app()->getModule('test')->userTable, array(
"id" => "pk",
"username" => "varchar(20) NOT NULL",
"password" => "varchar(128) NOT NULL",
"email" => "varchar(128) NOT NULL",
"active" => "varchar(128) NOT NULL",
"created" => "int(10) NOT NULL",
"updated" => "int(10) NOT NULL",
));
但是,当我运行迁移脚本时,数据库中的表名是{{test_user}},而我所期望的是'appname_test_user'。
我在这里做错了什么?
答案 0 :(得分:0)
检查您的控制台配置文件。您应该在'db'部分中具有与main.php中相同的'tablePrefix'(或存储Web应用程序db的配置)。运行迁移时,执行yiic
并使用控制台应用程序配置。
为了避免将来出现这种混淆,您可以将db组件的所有设置移动到另一个配置文件(ex config/db.php
)。然后,您可以用config/console.php
和config/main.php
这样包含它:
//..
'db'=>require('db.php'),
//..