2017-12-10 9 views
-2

저는 잠시 동안 더 큰 Laravel 프로젝트를 진행하고 있으며 현재 70 개 이상의 마이그레이션이 있습니다 (MySQL 사용). 나는 테스트 (필자는 수치 스럽다)를 쓰지 않았으며, 지금 그것을 따라 잡기를 좋아한다.
처음에는 외래 키를 사용했습니다. 몇 가지 이름을 바꾼 다음 후속 이전으로 완전히 제거했습니다.Laravel의 이전으로 다시 시작하십시오.

이제 테스트를 위해 임시 sqlite 데이터베이스를 사용해야합니다. 그러나 fk의 이름을 변경하고 MySQL의 명명 규칙이 sqlite와 다르므로 sqlite에서 찾을 수 없습니다. 다른 오류도 많습니다.

모든 마이그레이션을 삭제하고 을 모두 보유하는 단일 마이그레이션을 만들 수 있는지 궁금합니다. 현재의 데이터베이스 구조가 현재 상태입니다. 말하자면 처음부터 시작합니다.

그게 좋습니까? 이전 테이블 테이블에 어떤 일이 발생해야합니까?

답변

0

개발하는 동안 일반적으로 마이그레이션을 지속적으로 추가하여 필요한 구조를 얻을 수 있습니다. 구조가 마음에 들면 마이그레이션을 확실히 압축 할 수 있습니다.

누군가가 로컬에서 개발하고있는 경우가 종종 있습니다. 응용 프로그램을 배포하기 시작할 수있는 지점에 도달하기 때문에 필요한 구조를 알기 때문에 마이그레이션을 압축합니다. 이것이 필요한 스키마이므로 '뒤로 이동'해야합니다. 미래의 변화에 ​​대해서만 걱정할 필요가 있습니다.

이러한 마이그레이션을 실행하지 않은 시스템에서는 처음 실행되기 때문에 완벽하게 정상적으로 작동하므로 완벽한 스키마를 사용할 수 있습니다. 이미 마이 그 레이션 테이블이 있고 롤백하고 싶지 않다면, 수동으로 마이 그 레이션 테이블을 변경하여 더 이상 존재하지 않는 모든 마이 그 레이션을 제거하고 나머지 테이블을 변경해야합니다 (s)를 합병 후에 얻은 결과와 일치시킵니다. (롤백/새로 고침을 원한다면 ... 그러나 실제로는 특정 시점 이후 롤백 또는 새로 고침을하지 않고 [단지 데이터 손실을 원하지 않기 때문에] 앞으로 이동하십시오.

마이 그 레이션을 집중적으로 정리할 때 걱정할 사항은 거의 없습니다. 스키마입니다. 원하는 스키마를 알고 있으면 동일한 테이블을 여러 번 변경하는 20 가지 마이그레이션을 단계별로 수행 할 필요가 없습니다. 그 최종 결과.

+0

완전히 새로운 마이그레이션을 작성했으며 이전의 모든 마이그레이션과 완전히 동일한 데이터베이스 구조를 제공합니다. 그런 다음 _migrations_ 테이블을 수동으로 편집했습니다. 감사! – DoeTheFourth