복붙노트

[RUBY-ON-RAILS] Heroku가에 sqlite3를 함께 레일을 누르면에 실패 [중복]

RUBY-ON-RAILS

Heroku가에 sqlite3를 함께 레일을 누르면에 실패 [중복]

내가 Heroku가 내 레일 3 응용 프로그램을 배포하려고 sqlite3를가 보석 파일에 정의 될 때 Heroku가 배포 문제에 설명 된대로 저도 같은 시나리오를 경험한다.

이것이 왜 어떤 단서? 루비 - 포럼의 작품에 정의 된이 솔루션은, 그냥 이유를 궁금해했다.

해결법

  1. ==============================

    1.당신이 생산 환경에 Gemfile에 sqlite가 포함되지 않도록주의하십시오 :

    당신이 생산 환경에 Gemfile에 sqlite가 포함되지 않도록주의하십시오 :

    이 권리입니다 :

    source :gemcutter
    gem 'rails'
    
    group :development, :test do
      gem 'sqlite3-ruby', :require => 'sqlite3'
    end
    

    이것은 잘못된 것입니다 :

    source :gemcutter
    gem 'rails'        
    gem 'sqlite3-ruby', :require => 'sqlite3'
    
  2. ==============================

    2.SQLite는 영구 쓰기 가능한 파일 시스템이 필요합니다. (즉, 여러분의 프로그램은 궁극적으로 특정 파일에 POSIX하면 fopen ()과에 fwrite () API 호출에 액세스해야합니다). Heroku가 영구 쓰기 가능한 파일 시스템을 제공하지 않습니다. 따라서, SQLite는 3이 작동하지 않습니다.

    SQLite는 영구 쓰기 가능한 파일 시스템이 필요합니다. (즉, 여러분의 프로그램은 궁극적으로 특정 파일에 POSIX하면 fopen ()과에 fwrite () API 호출에 액세스해야합니다). Heroku가 영구 쓰기 가능한 파일 시스템을 제공하지 않습니다. 따라서, SQLite는 3이 작동하지 않습니다.

  3. ==============================

    3.SQLite는 보석이 설치되지 않도록 때문에 아키텍처, Heroku가 만 포스트 그레스 수 있습니다.

    SQLite는 보석이 설치되지 않도록 때문에 아키텍처, Heroku가 만 포스트 그레스 수 있습니다.

  4. ==============================

    4.이 데이터베이스 시스템은 응용 프로그램과 동일한 프로세스에서 실행되는 데이터베이스에 내장되어 있기 때문에 일의 sqlite3를 의도적으로 Heroku가 제공되지 않습니다. Heroku가 많은 프로세스 내에서 여러 시스템에서 실행할 수 있습니다 동일한 응용 프로그램을 의미한다 환경을 배포됩니다. (두 컴퓨터에 두 개의 격리 된 별도의 mysqls 상상) 전혀 관련이없는 - 즉 여러 개의 분리 된 sqlite3를 인스턴스를 줄 것이다.

    이 데이터베이스 시스템은 응용 프로그램과 동일한 프로세스에서 실행되는 데이터베이스에 내장되어 있기 때문에 일의 sqlite3를 의도적으로 Heroku가 제공되지 않습니다. Heroku가 많은 프로세스 내에서 여러 시스템에서 실행할 수 있습니다 동일한 응용 프로그램을 의미한다 환경을 배포됩니다. (두 컴퓨터에 두 개의 격리 된 별도의 mysqls 상상) 전혀 관련이없는 - 즉 여러 개의 분리 된 sqlite3를 인스턴스를 줄 것이다.

    분산 환경에서 적어도 '클라이언트 - 서버'중앙 집중 형 데이터베이스가 사용되어야합니다, 예컨대 : MySQL은, PostgreSQL을, 오라클.

  5. ==============================

    5.SQLite는의 최근 버전의 경우 대신 사용할 수 있습니다 :

    SQLite는의 최근 버전의 경우 대신 사용할 수 있습니다 :

    group :development, :test do
      gem 'sqlite3'
    end
    

    이것은 나를 위해 그것을 해결했습니다.

  6. ==============================

    6.다음 섹션을 제거하는 것을 잊지 마세요

    다음 섹션을 제거하는 것을 잊지 마세요

    .gitignore 파일에서. 당신이이 "새로운 당신의 응용 프로그램 이름을 레일"사용하는 경우이 선언으로 만들어지는 명령

  7. ==============================

    7.Heroku가 SQLite는 지원하지 않습니다. Heroku가에 Heroku가 문서 SQLite는 사람 :

    Heroku가 SQLite는 지원하지 않습니다. Heroku가에 Heroku가 문서 SQLite는 사람 :

  8. from https://stackoverflow.com/questions/3747002/pushing-rails-with-sqlite3-to-heroku-fails by cc-by-sa and MIT license