我正在尝试使用safeUp()方法中的Yii db migration创建一个表。但是,当我使用" ./ 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');
}
}
我尝试使用类似问题的评论中的一些建议,例如提供&#39; up&#39;或者&#39; safeUp&#39; migrate命令的参数。我还检查了console.php文件,并将其配置到正确的数据库。还有什么可能是不在数据库中创建表的原因?
答案 0 :(得分:0)
您应该提供up
或safeUp
方法。因此,请删除班级中的空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');
}
}