Codeigniter / Migration not Working

时间:2015-12-02 08:23:21

标签: php mysql codeigniter

我的迁移无效。我接受了#34;迁移工作"在我的浏览器中,但没有创建博客表,这是我所期望的。

这将检查migration.php中的修订号,然后查找该文件 从迁移文件夹中的那个数字(例如,001_)开始。

<?php
// this is controller/Migration.php
class Migration extends CI_Controller {
function index() {
    $this->load->library('migration');
    if ( ! $this->migration->current()) {
        show_error($this->migration->error_string());
    } else {
        echo "Migration Worked";
    }
}

}

这是002_install_blog.php它创建博客表。

<?php defined('BASEPATH') OR exit('No direct script access allowed');

class Migration_Install_blog extends CI_Migration {

public function up()
{
    // Drop table 'blog' if it exists       
    $this->dbforge->drop_table('blog', TRUE);

    // Table structure for table 'blog'
    $this->dbforge->add_field(array(
        'id' => array(
            'type' => 'MEDIUMINT',
            'constraint' => '8',
            'unsigned' => TRUE,
            'auto_increment' => TRUE
        ),
        'title' => array(
            'type' => 'VARCHAR',
            'constraint' => '100',
        ),
        'slug' => array(
            'type' => 'VARCHAR',
            'constraint' => '100',
        ),

        'body' => array(
            'type' => 'TEXT',
        ),

    ));
    $this->dbforge->add_key('id', TRUE);
    $this->dbforge->create_table('blog');
}
    public function down()
    {
        $this->dbforge->drop_table('blog', TRUE);

    }
}

这是migration.php。它包含迁移版本。它设置为2以使用002_install_blog.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$config['migration_enabled'] = TRUE;
$config['migration_type'] = 'sequential';
$config['migration_table'] = 'migrations';
$config['migration_auto_latest'] = TRUE;
$config['migration_version'] = '2';
$config['migration_path'] = APPPATH.'migrations/';

1 个答案:

答案 0 :(得分:0)

我想出来了。我有一张名为“迁移”的表格。我错误地将我的表放在mysql中,并没有通过运行迁移文件。然后,我运行了迁移文件,但是,&#39;迁移&#39;中的版本号。 table仍然设置为2.我手动将版本号设置为1,然后运行迁移文件。运行后查看迁移表中的版本号,确定版本为2。

故事的道德。无需手动删除表。它应该全部在迁移文件中处理!