최근에 내 schema.rb 파일을보고 내 데이터베이스에 존재하는 특정 열이 나타나지 않고 일부 테이블이 누락되었다는 사실에 놀랐습니다. 누락 된 열은 "def change add_column"마이그레이션을 통해 데이터베이스에 추가되었지만 추가 된 일부 열은 schema.rb에 예상대로 나타납니다.왜 내 schema.rb 파일이 업데이트되지 않습니까?
자세히 살펴보면 사용자 테이블을 만든 이후 schema.rb가 업데이트되지 않았다는 것을 알게되었습니다.
20151019205241_create_users.rb :
class CreateUsers < ActiveRecord::Migration
def change
create_table :users do |t|
t.string :name
t.string :email
t.timestamps null: false
end
end
end
이 실제로 나에게 문제가 발생하지 않은,하지만 난 schema.rb이 자동으로 유지 업데이트 될 줄 알았는데, 그것이 중요하다고이 업데이트 한 것으로 데이터베이스를 재 작성하십시오. 누구나 왜 업데이트되지 않을지 알아낼 수 있습니까?
하나의 가능성은 데이터베이스를 sqlite3에서 postgresql으로 전환 할 때 업데이트가 중지되었다는 것입니다. 나는 정확하게 기억하지 못한다. 그러나 나는 타이밍이 의미가 있다고 생각한다.
데이터베이스가 'schema.rb'와 어떻게 상호 작용하는지 잘 모르겠습니다. 'rake db : migrate'를 할 때 파일이 올바르게 업데이트됩니까? (이 레이크 작업을 성공적으로 실행하기 위해 새 마이그레이션을 추가 할 필요가 없습니다.) – Raffael
그렇지 않습니다. 다음 번에는 데이터베이스를 어떤 방식으로 업데이트하여 이것을 테스트 해 보겠습니다. 지금 당장 @smefju의 솔루션이 효과가있었습니다. 답장을 보내 주셔서 감사합니다! 맞습니다. 데이터베이스를 전환하는 것과 아무 관련이없는 것으로 보입니다. –