迁移不在codeigniter中工作

时间:2014-10-12 17:51:40

标签: php mysql database codeigniter frameworks

我有一个问题,我的迁移不起作用,添加到数据库的版本是0但是我已经为版本配置了1而没有运行我的create table方法

class Migration_Add_blog extends CI_Migration {

    public function up()
    {
        $this->dbforge->add_field(array(
            'blog_id' => array(
                'type' => 'INT',
                'constraint' => 5,
                'unsigned' => TRUE,
                'auto_increment' => TRUE
            ),
            'blog_title' => array(
                'type' => 'VARCHAR',
                'constraint' => '100',
            ),
            'blog_description' => array(
                'type' => 'TEXT',
                'constraint'=> '100'
            ),
        ));

        $this->dbforge->create_table('blog');
        $this->dbforge->add_key('id',TRUE);
    }

    public function down()
    {
        $this->dbforge->drop_table('blog');
    }
} 

2 个答案:

答案 0 :(得分:0)

在我的情况下,我的架构版本已经完成,所以创建表不会工作,所以你必须回滚你的架构:

type Parser a b =
  Parser (State a -> List (State b))

如果回滚有错误,请尝试在方法内部注释down(),因为该表尚不存在。

成功回滚后,现在尝试再次迁移。

答案 1 :(得分:-1)

您确定正确命名了文件吗?

<强> version_fileName.php

在你的前任。

 001_Migration_Add_blog.php

$this->dbforge->create_table('blog');
$this->dbforge->add_key('id',TRUE);

$this->dbforge->add_key('id',TRUE);
$this->dbforge->create_table('blog');

更新架构

$this->load->library('migration');

if ( ! $this->migration->current())
{
    show_error($this->migration->error_string());
}

$this->load->library('migration');

 if ( ! $this->migration->version(5); // or 6 , 7 your migration version
  {
   show_error($this->migration->error_string());
   }