Автоматическая миграция кода и выдача ключей - PullRequest
4 голосов
/ 27 января 2012

Я пытаюсь создать файл миграции в Codeigniter, но когда я его запускаю, он выдает ошибку, и независимо от того, что я делаю, я не могу запустить его.

class Migration_Add_users extends CI_Migration {     

public function up()
{
        $this->dbforge->add_field(array(
            'USERS_id' => array(
                'type' => 'INT',
                'constraint' => 5,
                'auto_increment' => TRUE,
            ),
            'USERS_firstname' => array(
                'type' => 'VARCHAR',
                'constraint' => '100',
            ),
            'USERS_surname' => array(
                'type' => 'VARCHAR',
                'constraint' => '100',
            ),
            'USERS_email' => array(
                'type' => 'VARCHAR',
                'constraint' => '150',
                ),
            'USERS_password' => array(
                'type' => 'VARCHAR',
                'constraint' => '150',
                ),
            'USERS_password' => array(
                'type' => 'VARCHAR',
                'constraint' => '150',
                ),
            'USERS_created' => array(
                'type' => 'DATETIME',
                ),
        ));

        $this->dbforge->create_table('users');
        $this->dbforge->add_key('USERS_id', TRUE);
    }

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

это ошибка

Error Number: 1075
Incorrect table definition; there can be only one auto column and it must be defined as a key

таблица

CREATE TABLE `users` ( 
`USERS_id` INT(5) NOT NULL AUTO_INCREMENT, 
`USERS_firstname` VARCHAR(100) NOT NULL, 
`USERS_surname` VARCHAR(100) NOT NULL, 
`USERS_email` VARCHAR(150) NOT NULL, 
`USERS_password` VARCHAR(150) NOT NULL, 
`USERS_created` DATETIME NOT NULL ) DEFAULT 
CHARACTER SET utf8 COLLATE utf8_general_ci;

Ответы [ 2 ]

3 голосов
/ 07 февраля 2012

Мне нужно было запустить

dbforge->add_key 

до

dbforge->create_table

Должен быть способ добавить это к

dbforge->add_field 

массив

1 голос
/ 27 января 2012
'USERS_password' => array(
     'type' => 'VARCHAR',
     'constraint' => '150',
),

появляется дважды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...