2011-01-29 34 views
5

Tôi biết tôi có thể tạo db: tạo và tạo bảng cơ sở dữ liệu hoặc db: di chuyển sang phiên bản mới, tuy nhiên điều tôi muốn làm là nhập giản đồ từ cơ sở dữ liệu hiện có (tất cả bảng) và tạo mô hình cho từng bảng.Ruby on Rails có cách nhập một lược đồ cơ sở dữ liệu hiện có không?

ActiveRecord có khả năng thực hiện việc này không? Cảm ơn!

+1

Không khó để tạo mô hình bằng tay cho các bảng hiện có/kế thừa. Bắt đầu với một mô hình đơn giản và nhận được tablename, khóa chính và tên trường được tạo. Chạy giao diện điều khiển của Rail và tạo lệnh tìm cho bản ghi đầu tiên. Bạn sẽ thấy SQL được tạo ra sẽ cung cấp cho bạn những gì bạn cần để tinh chỉnh mô hình. Hầu hết việc đặt tên trường bảng cũ sẽ chạy các giả định của ActiveRecord afoul, do đó bạn sẽ phải sửa nó. Tôi đã phải gắn kết với nhau một số cơ sở dữ liệu làm điều này và nó đã đi khá nhanh khi tôi nhận được hang của nó. Không sử dụng di chuyển mặc dù - DBA của bạn sẽ ghét bạn nếu một đi giả mạo. –

+0

Ngoại trừ DO sử dụng di chuyển. Cấu hình cơ sở dữ liệu là một phần của quá trình triển khai và bạn nên sử dụng di chuyển với các triển khai của mình để đảm bảo cơ sở dữ liệu khớp với ứng dụng của bạn. Các DBA nên tham gia vào việc thiết kế các bảng của bạn, nhưng không phải là việc triển khai lược đồ của bạn. – xaxxon

Trả lời

3

Không. ActiveRecord là một ORM, do đó, nó không có liên quan gì đến việc tạo các lược đồ cơ sở dữ liệu hoặc tạo các mô hình. Rails cũng không có khái niệm làm điều này.

Bạn sẽ phải ghi di chuyển cơ sở dữ liệu và tự mình thực hiện việc này.

1

Có một cách. Tạo một ứng dụng Rails 2.2 mới (không thể là 2.3 hoặc 3.0, đá quý chưa được cập nhật từ năm 2007). Sau đó cài đặt và sử dụng đá quý Magic Model Generator.

Điều này sẽ xem xét cơ sở dữ liệu hiện tại của bạn và thêm tất cả các mô hình từ nó, như ma thuật. Vì cấu trúc của các tệp mô hình ActiveRecord cơ bản là khá giống nhau trong Rails 3, bạn chỉ có thể sao chép chúng vào dự án hiện tại của bạn và tinh chỉnh khi cần thiết.

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