【问题标题】:Yii Framework - yic migrate command doesn't workYii 框架 - yic 迁移命令不起作用
【发布时间】:2013-08-10 05:02:30
【问题描述】:

我正在尝试在 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');
}

}

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

【问题讨论】:

    标签: php yii database-migration


    【解决方案1】:

    您应该提供upsafeUp 方法。所以删除你类中的空 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');
    }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-05
      • 1970-01-01
      • 2013-02-05
      • 1970-01-01
      • 1970-01-01
      • 2021-12-09
      • 1970-01-01
      相关资源
      最近更新 更多