0

我必须在这里遗漏一些东西,因为我的 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”。

我在这里做错了什么?

4

1 回答 1

0

检查您的控制台配置文件。您应该在“db”部分中拥有与 main.php 中相同的“tablePrefix”(或存储 Web 应用程序 db 配置的位置)。运行迁移,您执行yiic并使用控制台应用程序配置。

为避免将来出现这种混淆,您可以将 db 组件的所有设置移动到另一个配置文件(例如config/db.php)中。然后你可以通过这两种方式包含config/console.phpconfig/main.php

//..
'db'=>require('db.php'),
//..
于 2013-08-09T23:09:26.453 回答