2011-11-28 4 views
3

heroku에서 프로덕션 환경에서 실행중인 응용 프로그램이 있지만 schema_migrations 테이블에 문제가 있습니다.적용된 마이그레이션 항목이 schema_migrations 테이블에 나타나지 않습니다.

마지막 마이그레이션 변화는 db/schema.rb 파일에 존재하지만, schema_migrations 테이블이 마이그레이션에 대한 항목이 없습니다.

따라서 rake db:version을 실행할 때 마지막 마이그레이션 이전에 실행 된 마이그레이션에 해당하는 번호가 있습니다.

테이블에 schema_migrations 테이블에이 마이그레이션 항목을 추가해야한다고 생각합니다. 그러나 데이터베이스에서 날짜에 영향을주지 않고이 작업을 수행하는 방법과 heroku에서 원격으로 수행하는 방법을 잘 모릅니다.

답변

6

나는 schema_migrations 테이블에서 마이그레이션하지 않은 비슷한 문제가있었습니다. 그래서 나는이를 실행했다 :

Dir.open('db/migrate').each do |fname| 
    i = fname.split('_').first.to_i 
    next if i == 0 
    ActiveRecord::Base.connection.execute("INSERT INTO schema_migrations (version) VALUES(#{i})") 
end 

source

+0

니스, 감사, 난 매우 유사한 접근 방식을 해결했다. – luizcosta