0

我正在尝试在 safeUp() 方法中使用 Yii db 迁移创建一个表。但是,当我使用“./yiic migrate”命令时,它运行成功,但表没有出现在数据库中。以下是迁移文件中的代码:

<?php

class m130808_123826_test_table extends CDbMigration
{

    public function up()
{
}

public function down()
{
   echo "m130808_123826_test_table does not support migration down.\n";
   return false;
}

public function safeUp()
{
   $this->createTable('tbl_test', array(
   'test_field1' => 'int(10)',
   'test_field2' => 'string NOT NULL',
    ), 'ENGINE=InnoDB');
}

public function safeDown()
{
   $this->dropTable('tbl_test');
}

}

我尝试使用来自类似问题的评论中的一些建议,例如为 migrate 命令提供“up”或“safeUp”参数。我还检查了 console.php 文件,它被配置到正确的数据库中。还有什么可能是不在数据库中创建表的原因?

4

1 回答 1

0

您应该提供uporsafeUp方法。所以删除类中的空up方法:

<?php

class m130808_123826_test_table extends CDbMigration
{

public function down()
{
   echo "m130808_123826_test_table does not support migration down.\n";
   return false;
}

public function safeUp()
{
   $this->createTable('tbl_test', array(
   'test_field1' => 'int(10)',
   'test_field2' => 'string NOT NULL',
    ), 'ENGINE=InnoDB');
}

public function safeDown()
{
   $this->dropTable('tbl_test');
}

}
于 2013-08-08T13:17:17.633 回答