다음 분석이 맞는지 확인하고 싶습니다.Ruby on Rails에서 마이그레이션 사용
RoR에 웹 응용 프로그램을 구축 중입니다. 데이터 구조가 내 postgres 데이터베이스에 대한 설계 (약 70 테이블,이 디자인을 할 때 레일스 방식으로 일을 반영하도록 개발 중에 변경 및 추가가 필요할 수 있습니다 .EG, 일부 사용자 및 역할 테이블을 디자인했습니다 -하지만 Restful 인증, 나는 그것들을 문질러서 RA가 요구하는 것으로 대체 할 것입니다.).
필자는 일련의 .sql 파일을 호출하여 테이블과 초기 데이터 (예 : 타운이 포스트 타운으로 미리 채워짐)와 테스트 데이터를 채우는 일련의 .sql 파일을 호출합니다 (예 : 더미 회사들과 함께 놀 수있는 데이터가 있음). 예를 들어
:
CREATE TABLE towns (
id integer PRIMARY KEY DEFAULT nextval ('towns_seq'),
county_id integer REFERENCES counties ON DELETE RESTRICT ON UPDATE CASCADE,
country_id integer REFERENCES countries ON DELETE RESTRICT ON UPDATE CASCADE NOT NULL,
name text NOT NULL UNIQUE
);
제안 0 : 데이터는 더 이상 애플 리케이션보다 더 지속, 그래서 나는의 부족에도 불구하고, 내 RoR에 모델 참조 DB를 수준에서 시행 무결성뿐만 아니라 검증을 할 것을 확신합니다 DRYNESS.
제안 1 : 스크립트 및 sql 파일을 마이그레이션으로 대체하는 경우 현재 마이그레이션 코드 내에서 SQL DDL 파일에 설정된 외래 키 및 기타 제약 조건에 대해 내 Postgres 데이터베이스에 알려줄 수 없습니다.
명제 2 : 마이그레이션의 장점은 스키마 변경이 RoR 모델 코드와 함께 버전이 적용된다는 것입니다. 그러나 스크립트와 .sql 파일을 railsapp/db에 보관하면 쉽게 버전을 지정할 수 있습니다.
제안 3 : 마이그레이션 내가 원하는 기능이 부족하고, 내가 복제 할 수있는 혜택을 제공 감안할 때, 그 사용을 고려하는 나를 위해 작은 이유가있다. 그래서 나는 스크립트에서/skipmigrations해야/모델 시간을 생성합니다.
내 질문 : 법안 0이 수락되면 발의안 1,2,3이 참이거나 거짓입니까? 그 이유는 무엇입니까?
감사합니다.
코드 포맷 : 각 코드 행 앞에 4 개의 공백을 넣으십시오. StackOverflow는 그것을 미리 포맷 된 블록 (들여 쓰기 포함)으로 취급 할 것이고, 대부분의 시간은 올바른 구문 강조를 선택할 것입니다. – webmat
거기 가서, @webmat. –
데이터베이스 디자인을 구현하는 동안 고려해야 할 사항 https://cbabhusal.wordpress.com/2015/08/16/ruby-on-rails-order-of-migration-generator-matters-in-initial-design/ – illusionist