질문을 삭제하지 말아주세요.!
 
1
0
-1

안녕하세요, 감사하게도 여기서 많은 도움을 받고 있는 초보 개발자입니다.

한 가지 여쭤보고 싶은게 있습니다.

라라벨 기본 마이그레이션인

2014_10_12_000000_create_users_table, 2014_10_12_100000_create_password_resets_table

두가지가 있는데, 제가 만약 2014_10_12_000000_create_users_table 을

create_users_table 로 바꾸고 사용하려면 어떻게 해야하나요??

 

제가 한번 파일명 변경해보고 지워봤다가 다시 만들어보기도 했지만

두 가지 경우 다 에러가 나더라구요.

    CommentAdd your comment...

    2 answers

    1.  
      1
      0
      -1

      우선 마이그레이션 파일의 존재 목적은 데이터베이스 스키마가 변경되는 내역을 관리하게 하여

      협업하는 동료 개발자 또는 혼자서 일하는 개발자 스스로가 GIT등을 통한 VCS에 그 내역을 관리 할 수 있게 하는 것입니다.

       

      라라벨의 기본 마이그레이션이 존재한다는 것은

      설치시 기본적으로 가지고 있는 user 모델에 대한 데이터베이스 테이블을 구성하는 마이그레이션을 가지고 있는 것입니다.

      사용하시려는 User 가 별도로 존재한다면, 그에 맞게 새로운 마이그레이션 파일을 생성하여 사용하시면 됩니다.

       

      파일명 앞부분에 날짜가 있는 이유는 php artisan migrate 마이그레이션이 실행될 때

      순서를 명확하게 정의하기 위해서 입니다.

      파일명이 바뀌어도 실행은 됩니다만, 순서대로 실행되는 것을 보장하지 않기 때문에 이부분은 주의하셔야 합니다.

       

      그리고 매뉴얼에서는 필요에 따라서 새로운 마이그레이션 파일을 생성할 때에는 

      php artisan make:migration 명령어를 사용하는 것은 권장하고 있습니다.

      1. 헤이준

        아 실행하는데 순서대로 하기 위해 앞에 날짜를 붙이는 거 였군요...

        제 개인적으로 보기가 안좋아서 바꾸려 했는데 그러면 안 바꾸는게 좋겠네요.

      2. 김주원

        테이블 A의 id 컬럼에 대해서 테이블 B에서 a_id 라는 이름으로 외래키 관계를 연결하고 있다면, 테이블 A가 없는 상태에서 테이블 B를 만들 수 없습니다. 테이블을 만드는 순서가 중요하지요. 그래서, 마이그레이션 순서가 꼬였다면, 수동으로 마이그레이션 파일의 타임스탬프를 조작해서 실행 순서를 변경하면 됩니다.

      CommentAdd your comment...
    2.  
      1
      0
      -1

      정수님 말씀대로 db 마이그레이션은 스키마 버전 관리를 위해 사용하는 기능입니다.

       

      db 마이그레이션 소개와 필요성은 제 블로그와 java 의 마이그레이션 툴인 flyway 소개 자료를 보시면 이해가 쉬우실 것 같습니다.

        CommentAdd your comment...