2011-02-04 5 views
4

레일스에서 ​​schema.rb에 문제가 있습니다. 내가 rake db:migrate 결과는 내가 PostgreSQL을 사용하고 텍스트 필드가 나에게다른 데이터베이스에 대해 schema.rb 레일이 다름

t.text  "summary" 

라인을 제공하지만, SQLite는 그것을 나에게 또한

t.text  "summary", :limit => 255 

제공하는 경우 정확히 말하면, 다른 데이터베이스에 대한 다른 실행하는 경우

t.boolean "watched", :default => false, :null => false 

SQLite는 :

,745 I는 공간의 개수 인 PostgreSQL 다르다 :default 사용
t.boolean "watched",     :default => false, :null => false 

생산에서 rake db:migrate을 실행하면 내 schema.rb가 변경되고 분명히 개발 환경에서 생성 된 schema.rb를 사용할 때 rake db:schema:load을 사용할 수 없습니다. 내 질문은 왜 거기에 차이점이 있으며 어떻게 그들을 사라지게 만들 것인가? 그렇다면 schema.rb는 제작과 개발면에서 동일하다.

답변

10

당신의 생산을 위해 개발 한 것과 동일한 DB 엔진을 사용하는 것이 좋습니다. 로컬 MySQL 또는 PostgreSQL 서버로 시작하고 실행하는 데 너무 많은 노력을 기울이지는 않습니다. 일단 푸시하면 동일한 백엔드에서 모든 개발 및 테스트를 수행하여 불쾌한 놀라움을 피할 수 있습니다 생산.

+2

내가 찾던 답변이 정확하지 않지만 좋은 조언입니다. PostgreSQL을 개발에도 사용할 것입니다. 감사합니다. –

+2

DB 간의 차이점은 다양하고 미묘하며, Rails는 DB 주위에 완벽하게 밀폐 된 추상화를 제공하지 않습니다. dev와 production에서 동일한 DB를 사용하는 것이 절대적입니다. –

관련 문제