2012-03-29 22 views
6

Sử dụng Rails 3.2.2ruby 1.9.3dev và mysqlTạo mô hình từ các bảng hiện có sử dụng Rails 3

Tôi mới đến Ruby và Rails. Chúng tôi có một cơ sở dữ liệu hiện có với vài trăm bảng. Chúng tôi muốn thử các đường ray để xem liệu đó có phải là một thay đổi tích cực từ PHP & ZendFramework hay không.

Di chuyển dữ liệu vào cơ sở dữ liệu khác không phải là một tùy chọn cho chúng tôi bởi vì chúng tôi có một số ứng dụng khác hiện đang sử dụng cơ sở dữ liệu này. Chúng tôi muốn "đính kèm" một dự án đường ray vào cơ sở dữ liệu hiện có.

Phần tôi đang đấu tranh đang tạo tất cả các mô hình từ cơ sở dữ liệu hiện có của chúng tôi.

Tôi đã thấy một vài bài đăng cũ hơn nói về một số kỹ thuật tự động bao gồm Magic Model Generator. Trong khi những người khác nói về không có cách nào để làm điều này, hoặc bạn chỉ cần tạo ra tất cả bằng tay.

tôi đã không thành công trong việc tạo mô hình sử dụng ma thuật Mẫu Generator (có lẽ ray 2 chỉ?)

Từ lâu lắm rồi, khi chúng tôi chuyển sang ZendFramework, tôi đã viết một kịch bản nhanh chóng để phân tích cơ sở dữ liệu và tạo ra tất cả các tập tin mô hình cho chúng tôi. Có vẻ như đây sẽ là một kịch bản khá phổ biến.

Lưu ý: Chúng tôi sử dụng ID thay vì id và nhiều người có nhiều mối quan hệ foreign_key.

Vì vậy, tôi muốn hỏi cộng đồng những gì là tốt nhất (cách/thực hành) để xử lý việc này?

Trả lời

2

Nó không phải là khó, chỉ cần có cấu hình hơn một chút. Đây là mẫu cơ bản cho mô hình:

class YourIdealModelName < ActiveRecord::Base 
    self.table_name = `actual_table_name` 
    self.primary_key = `ID` 

    belongs_to :other_ideal_model, 
    :foreign_key => 'foreign_key_on_other_table' 

    has_many :some_other_ideal_models, 
    :foreign_key => 'foreign_key_on_this_table', 
    :primary_key => 'primary_key_on_other_table' 
end 
+0

Cảm ơn bạn đã lấy mẫu, đây thực sự là con đường tôi đang cân nhắc. Tuy nhiên, tôi nghĩ rằng sẽ có một công cụ mà có thể làm điều này rồi. –

+0

Thay vì tạo mô hình ma thuật, bạn có thể thử các mô hình ma thuật. Nó sẽ không tạo ra các tập tin mô hình nhưng bạn sẽ có chúng trong ứng dụng của bạn, và tôi đã sử dụng thành công nó trong một ứng dụng đường ray 3. –

+0

Bạn có liên kết để biết thêm thông tin về các mô hình ma thuật không? –

0

Tôi không có chuyên gia và thậm chí đã nghiên cứu về điều này. Nếu không có suy nghĩ về giải pháp đầu tiên trong tâm trí của tôi là làm cho các mô hình và di chuyển theo cách đường ray để bạn không có bất kỳ vấn đề, ví dụ như chìa khóa và đặt tên khóa nước ngoài. Nếu bạn đã có một số dữ liệu, bạn nên chuyển nó sang db đường ray.

Một lý do để làm điều này là mô hình giả sử không phải chỉ accessors dữ liệu mà còn chứa các logic kinh doanh

+1

Cảm ơn ý kiến ​​của bạn. Di chuyển dữ liệu vào cơ sở dữ liệu khác không phải là một lựa chọn cho chúng tôi bởi vì chúng tôi có một số ứng dụng khác hiện đang sử dụng cơ sở dữ liệu này. Chúng tôi muốn "đính kèm" một dự án đường ray vào cơ sở dữ liệu. –

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