CI 묻고 답하기

제목 [초보]마이그레이션
글쓴이 헛발이 작성시각 2012/04/26 08:56:30
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 16787   RSS
마이그레이션을 사용해 보려고 연습중인데요....
테이블을 생성하는 부분에서 예제를 그냥 가져다 사용했는데 자꾸 에라가 나네요..

테이블 생성시에
$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',
        'null' => TRUE,
    ),
));

$this->dbforge->create_table('blog', TRUE);
이렇게 했는데요..
자꾸 이런 에라가 뜨네요..

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

'auto_increment' => TRUE 이 문제 같은데요...
이걸 빼면 테이블 생성이 되는데 'auto_increment' => TRUE 이걸 넣으면 자꾸 에라가 나네요...

제가 뭘 잘못했나요?

 다음글 DB 관련 조언 좀 부탁드립니다. (2)
 이전글 접속자가 열어본 페이지 남기는 모델 만들었는데 문제가 ... (6)

댓글

한대승(불의회상) / 2012/04/26 09:40:11 / 추천 0
auto_increment 사용시 mysql 특성상 키로 지정되어 있지 않으면 에러가 납니당.. ^^
헛발이 / 2012/04/26 09:53:56 / 추천 0
아 그렇군요... 좋은 정보 감사합니다..
덕분에 이렇게 해서 해결 했습니다...

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',
            'null' => TRUE,
        ),
    ));
    $this->dbforge->add_key('blog_id', TRUE);
    $this->dbforge->create_table('blog', TRUE);
}