我的迁移无效。我接受了#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/';
答案 0 :(得分:0)
我想出来了。我有一张名为“迁移”的表格。我错误地将我的表放在mysql中,并没有通过运行迁移文件。然后,我运行了迁移文件,但是,&#39;迁移&#39;中的版本号。 table仍然设置为2.我手动将版本号设置为1,然后运行迁移文件。运行后查看迁移表中的版本号,确定版本为2。
故事的道德。无需手动删除表。它应该全部在迁移文件中处理!