Tôi đã cố gắng chạy
heroku run rake db:migrate
Và nhận được lỗi
Không thể chạy nhiều hơn 1 dynos kích thước miễn phí.
Xem bên dưới để biết cách khắc phục ...
Câu trả lời:
Hiệu quả nhất
trong bảng điều khiển chạy:
heroku ps
kết quả là một số như thế này:
run.4859 (Free): up 2016/01/12 21:28:41 (~ 7m ago): rails c
Vì vậy, các con số 4859 đại diện cho phiên đang mở và cần phải đóng lại. Để sửa lỗi bạn cần chạy (Obviusly, thay số 4859 bằng số có được):
heroku ps:stop run.4859
Đó là một giải pháp rất đơn giản.
Câu trả lời là tìm kiếm bất kỳ phiên heroku nào đang mở (bạn có thể sử dụng 'heroku ps' như john chỉ ra bên dưới), trong trường hợp của tôi, tôi đã bắt đầu phiên điều khiển heroku trước đó 30 phút và chỉ quên nó. Vì vậy, nếu bạn thấy lỗi "Không thể chạy nhiều hơn 1 dynos kích thước miễn phí", chỉ cần đóng bất kỳ bảng điều khiển hiện có nào hoặc các phiên heroku khác mà bạn đã mở.
Hy vọng rằng điều này sẽ cứu ai đó trong mười phút mà tôi đã lấy lại được.
heroku ps
và sau đó heroku ps:stop <DYNO>
để dừng quá trình.
heroku ps
) giống như "netstat" trong linux. Sẽ hiển thị cho bạn các quy trình đang chạy. Trong trường hợp của tôi, nó trông giống như run.5656 (Free): up 2016/01/12 21:28:41 (~ 7m ago): rails c
. Như bạn có thể thấy, tôi đã để nhầm bảng điều khiển rails mở. Vì vậy, tất cả những gì tôi phải làm là chạy heroku ps:stop run.5656
. Easy Peasy :) Cảm ơn John!
heroku ps:stop run.9121 --app my-app-name
Số bash của tôi là 9121
. Bạn có thể nhìn thấy bạn vớiheroku ps
Trong trường hợp của tôi, tôi đã chạy heroku ps:restart
để khởi động lại tất cả dynos và heroku run *
lệnh hoạt động trở lại.
Ví dụ
Nếu bạn chỉ có một điều khiển từ xa Git cho Heroku, hãy sử dụng cái này:
heroku ps:restart && heroku run *
Nếu bạn có nhiều điều khiển từ xa Git cho Heroku, hãy sử dụng cái này:
heroku ps:restart --remote your-remote-name && heroku run * --remote your-remote-name
HOẶC LÀ
heroku ps:restart --app your-heroku-app-name && heroku run * --app your-heroku-app-name
Thay thế *
bằng lệnh của bạn, ví dụ như console
bảng điều khiển Rails.
Ý tôi muốn nói your-heroku-app-name
ở đây là miền phụ cho ứng dụng Heroku của bạn. Ví dụ: nếu URL ứng dụng của bạn là https://cute-cat.herokuapp.com
, điều đó có nghĩa your-heroku-app-name
là cute-cat
.
Nếu bạn không chắc chắn / quên tên điều khiển từ xa Git của mình cho Heroku là gì, git remote -v
có thể giúp bạn điều đó.
Thí dụ:
$ git remote -v
this-is-the-remote-name https://git.heroku.com/xxx.git (fetch)
this-is-the-remote-name https://git.heroku.com/xxx.git (push)
this-is-another-remote-name https://git.heroku.com/yyy.git (fetch)
this-is-another-remote-name https://git.heroku.com/yyy.git (push)