Tôi đang sử dụng tập lệnh shell để chạy một số tập lệnh runner trong ứng dụng Ruby on Rails. Tôi cần phải chạy nó trên các cơ sở dữ liệu sản xuất, nhưng điều sau đây:Ruby on Rails: Làm cách nào tôi có thể chỉ định môi trường tập lệnh Á hậu
#!/bin/bash
/usr/bin/ruby RAILS_ENV=production ../script/runner ../lib/tasks.rb
đưa ra một lỗi:
/usr/bin/ruby: No such file or directory -- RAILS_ENV=production (LoadError)
Tôi đã cố gắng để buộc nó trong config/environment.rb
ENV['RAILS_ENV'] ||= 'production'
hoặc thậm chí
ENV['RAILS_ENV'] = 'production'
nhưng ngay cả khi nó vẫn chạy trong môi trường phát triển.
Cập nhật: Tôi có thể buộc các tập lệnh kết nối với đúng cơ sở dữ liệu bằng cách chỉnh sửa tệp config/database.yml, nhưng tôi tự hỏi cách thích hợp để thực hiện nó là gì.
Bạn đã đọc câu trả lời của tôi không? Nó sẽ chọn môi trường của bạn một cách chính xác nếu bạn vượt qua các thông số của bạn một cách khác nhau. – Garrett
Nó sẽ chạy, nhưng nó sẽ không đặt môi trường chính xác. – Goro
Sau đó, có gì đó không ổn với tập lệnh của bạn, không phải lệnh. – Garrett