2012-06-21 30 views
6

tôi đã nhận được các lỗi sau đây sử dụng ruby ​​1.9.2-P320 với Heroku của Taps-sử dụng 'db' lệnh như:Heroku db: kéo Vòi tải Lỗi: không có tập tin để tải - pg

heroku db:pull --app my-app 

nào tạo ra các lỗi như:

Taps Load Error: no such file to load -- sqlite3 

-hoặc-

Taps Load Error: no such file to load -- pg 

(Và vâng, btw, tôi có tất cả các đá quý đúng, bao gồm cả postgres - chạy ning tốt tại địa phương - và sqlite3, cũng như đã gỡ bỏ cài đặt, cài đặt lại, và cập nhật các vòi & đá quý heroku và bao gồm chúng cũng như không bao gồm chúng trong Gemfile của tôi. Tôi đang chạy Rails 3.2.6)

Mặc dù có lỗi đã biết dẫn đến lỗi "chuyển múi giờ": heroku db:push not working, using taps gem, tôi chưa thấy bất kỳ bài đăng SO nào trực tiếp giải quyết vấn đề này.

Trả lời

2

Các giải pháp tôi đã tìm thấy, sử dụng gợi ý từ https://github.com/ricardochimal/taps/issues/92 được trình bày chi tiết ở đây: https://github.com/ricardochimal/taps/issues/92#issuecomment-6486535

Các ngắn của nó, đó là ruby ​​1.9.2-P320 dường như đã được các vấn đề, như xa như tôi có thể nói. Hạ cấp xuống ruby ​​1.9.2-p290 đã sửa nó cho tôi. Điều này có thể liên quan đến các vấn đề ruby ​​1.9.3 nói về liên kết ở trên, không chắc chắn.

Nếu bạn vẫn đang treo trong đó với Vòi, vui lòng xem this comment at GH, vì doshea poster dường như đã xem xét kỹ hơn cả tôi hoặc jfeust.

Tôi cũng sẽ nhắc lại ở đây nếu bạn không cần Vòi, sau đó heroku-pgtransfer là bạn của bạn. Xem Ryan's answer to my question herehis excellent blog post về cách sử dụng công cụ mới hơn.

+0

FYI, Đá quý vòi không hoạt động với tôi bằng ruby ​​1.9.2-p290. Tôi nhận được lỗi 'Taps Load Error: không có tập tin như vậy để tải - vòi/hoạt động'. – Clay

+1

Vòi bắt đầu hoạt động cho tôi bằng cách sử dụng cùng một phiên bản Ruby trên cả Heroku và cục bộ. [Xem bình luận GH của tôi] (https://github.com/ricardochimal/taps/issues/92#issuecomment-6486535): Tôi khuyên bạn nên thử: $ 'heroku run 'ruby -v'' và xem Heroku phiên bản nào là chạy và sau đó cập nhật địa phương của bạn để phù hợp. Không đảm bảo, nhưng điều đó có vẻ là những gì đã làm cho tôi (một lần nữa, đoán, có lẽ do lỗi là [đối số của Ruby marshalling] (http://stackoverflow.com/questions/8151571/error-when-pushing-data-to- heroku-time-zone-displacement-out-of-range)?). Cũng xem nhận xét của jfeust tại GH trên bộ công cụ Heroku. – likethesky

+0

Do ~/.rvm/bin/ruby-1.9.2-p320/usr/bin/heroku db: đẩy – Ted

15

Vòi không còn là công cụ được khuyến nghị sử dụng khi di chuyển dữ liệu giữa các thể hiện postgres. Thay vào đó, hãy thử dùng heroku-pg-transfer.

Điều này sẽ chỉ hoạt động nếu bạn đang sử dụng một trong số production databases hoặc Heroku postgres dev or basic plans mới. Nếu bạn vẫn còn trên kế hoạch cơ sở dữ liệu được chia sẻ cũ hơn, tôi sẽ đề nghị chuyển sang gói dev mới.

Trước tiên, tìm URL để db của bạn trên Heroku:

$ heroku config:get DATABASE_URL 
postgres://yada:[email protected]:5432/123 

Sau đó chuyển từ Heroku db để db địa phương của bạn:

$ heroku plugins:install https://github.com/ddollar/heroku-pg-transfer 
$ heroku pg:transfer -t postgres://localhost/dbname -f postgres://yada:[email protected]/123 

Kể từ khi công cụ Heroku-pg-chuyển giao sử dụng của postgres cơ sở pg_dump gốc là một công cụ dễ dự đoán và linh hoạt hơn nhiều.

Tôi đã viết thêm về nó ở đây: Using heroku pg:transfer to migrate Postres databases

+0

Cảm ơn [@Ryan Daigle] (http://stackoverflow.com/users/1339184/ryan-daigle) - - Tôi đồng ý rằng heroku-pg-transfer tốt hơn cho những ai đang sử dụng kế hoạch dev của Heroku postgres (và khuyên người dùng sử dụng nó!), Tuy nhiên câu hỏi của tôi là hỏi về sử dụng Taps, vì vậy tôi đã đánh dấu tôi là câu trả lời được chấp nhận . Tôi chủ yếu đăng câu hỏi này vì tôi đã cố gắng tìm ra những gì sai, vì vậy nếu những người khác vẫn đang sử dụng Taps, tôi hy vọng họ tìm thấy điều này (và lời khuyên của bạn) hữu ích. Cảm ơn! – likethesky

+0

Cảm ơn SO nhiều vì đã đăng bài này. Taps đã được crap để làm việc với, sau nhiều tuần đau đớn. Cuối cùng sử dụng phương pháp này và BAM làm việc lần đầu tiên! THANKYOU THANKYOU – Evolve

+0

CẢM ƠN BẠN! Đã mất nhiều giờ cố gắng để có được Taps để làm việc với Heroku, và đây là lần đầu tiên đề cập đến tôi đã nhìn thấy pg: chuyển giao. Làm việc lần đầu tiên! – matadur

2

Giải pháp của tôi là để thêm các vòi đá quý và ngọc sqlite3 (thậm chí là tôi không SQLite bất cứ nơi nào trong ứng dụng) vào gemfile (đang được phát triển) .

+0

Điều này cũng hoạt động nếu bạn chỉ cần chạy 'gem install sqlite3' và để nó ra khỏi gemfile của bạn. – brent

1

Theo @likethesky, bạn có thể hạ cấp.Ngoài ra, chỉ cần

~/.rvm/bin/ruby-1.9.2-p320 /usr/bin/heroku db:push 

Tất nhiên, cần phải cài đặt p320 với đá quý và đá cẩm thạch sqllite3. Đủ dễ dàng để đưa vào vị trí.

Các vấn đề liên quan