У меня проблема, моя миграция не работает, версия добавлена в БД 0, но я настроил 1 для версии, где не работает метод создания таблицы
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');
}
}
В моем случае моя версия схемы уже сделала это, поэтому создание таблицы не будет работать, поэтому вы должны откатить свою схему:
$this->migration->version($old_schema);
Если при откате возникла ошибка, попробуйте комментировать внутри вашего метода down (), потому что таблица еще не существует.
После успешного отката попробуйте перенести его снова.
Вы уверены, что назвали файл правильно?
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());
}