2011-11-25 75 views
6

Tôi không phải là nhà phát triển Rails có kinh nghiệm, phát triển ứng dụng Rails v2.3 với MySQl v5.1.Tạo môi trường mới trong Rails

Tôi không chắc chắn làm thế nào để đạt được điều sau đây:

tôi cần phải tạo ra:

1. Một môi trường mới (đó là một môi trường mới bên cạnh phát triển, sản xuấtkiểm tra môi trường) có tên 'đặc biệt' môi trường

2. Một môi trường cơ sở dữ liệu mới cho tạo ở trên đặc biệt môi trường, những gì tôi đã làm là thêm những điều sau đây trong config/database.yml

special: 
    adapter: mysql2 
    host: localhost 
    username: 
    database: special_db 
    encoding: latin1 

3. Một nhiệm vụ cào để chạy theo môi trường đặc biệt và mã trong tác vụ cào chỉ xử lý cơ sở dữ liệu đặc biệt.

Để đạt được điều này, tôi biết tôi cần phải xác định một số cấu hình, nhưng không chắc chắn:

  1. gì/Làm thế nào chính xác là cần thiết để cấu hình để tạo ra các đặc biệt môi trường cơ sở dữ liệu &?

    (Như bạn đã thấy ở trên, tôi chỉ xác định đặc biệt cơ sở dữ liệu trong database.yml tập tin, nhưng nơi & làm thế nào để xác định và cấu hình cho enverionment mới?)

  2. Làm thế nào để chạy cào mã tác vụ theo môi trường đặc biệt và chỉ xử lý cơ sở dữ liệu đặc biệt trong Rails. Ai đó có thể vui lòng

P.S.

Tôi cần chạy mọi thứ trong tác vụ cào không phải từ dòng lệnh. Làm cách nào để thay đổi môi trường và cách kiểm tra thay đổi?

-------------- Đã tìm thấy lý do, nhưng không chắc chắn giải pháp ---------------------

Ok, tôi đã tìm ra nguyên nhân của sự cố có dây này là do đá quý mysql2 dường như không thể tải môi trường "đặc biệt" mới, nếu tôi chuyển sang sử dụng đá quý mysql thì vấn đề sẽ biến mất. Nhưng probject này phải sử dụng mysql2 vì một số lý do khác. Làm thế nào để thoát khỏi vấn đề này mysql2?

Trả lời

1

Hãy thử như sau:

Sao chép config/môi trường/development.rb để config/môi trường/special.rb

Tạo cơ sở dữ liệu sử dụng

$ RAILS_ENV=special rake db:create 
$ RAILS_ENV=special rake db:migrate 
$ RAILS_ENV=special rails s 
+0

@ map7, cảm ơn bạn, nhưng Cách chạy những điều trên trong tác vụ thay thế chạy từ dòng lệnh? Có cách nào đặc biệt trong Rails để xác định môi trường để chạy trong nhiệm vụ rake? – Mellon

+1

Và tôi thậm chí tôi chạy lệnh trên "RAILS_ENV = đặc biệt rake db: tạo" dòng lệnh, cơ sở dữ liệu sepcial không được tạo ra – Mellon

0

Đặt này vào nhiệm vụ cào của bạn :

RAILS_ENV = 'special' 
+0

Tôi thêm vào này, sau đó tôi đã cố gắng đưa ra môi trường hiện tại của tôi với mã "p ENV ['RAILS_ENV' ] ", Tôi nhận được ... – Mellon

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