Bài đăng này đã được sử dụng làm tài liệu tham khảo của đồng nghiệp của tôi, nhưng hai câu trả lời không chính xác hoặc đủ thông tin.
development_structure.sql là một kết xuất lược đồ cấp thấp, cần thiết khi bạn bắt đầu sử dụng các tính năng cơ sở dữ liệu độc quyền - dù bạn muốn hay không, bạn sẽ sử dụng chúng tại một số điểm.
Về câu hỏi lưu trữ hay không, có một số tranh luận. Đây là một bài viết thông tin: http://www.saturnflyer.com/blog/jim/2010/09/14/always-check-in-schema-rb/. Và việc tôi thực hiện điều này sau đây.
Mục tiêu của tệp development_structure.sql là đồng bộ hóa, cho bất kỳ cam kết đã cho nào, cấu trúc cơ sở dữ liệu với mã, mà không có kiến thức trước về cấu trúc lược đồ, nghĩa là không cần phải dựa vào trạng thái trước lược đồ để lấy lược đồ mới.
Tóm lại, bằng cách có cấu trúc lược đồ có sẵn, bất cứ khi nào bạn thay đổi nhánh/cam kết, bạn tải nó trực tiếp và quên nó. Điều này chủ yếu là hợp lệ cho các dự án năng động và "đông đúc", nơi các nhánh khác nhau có sự khác biệt trong cấu trúc lược đồ cơ bản.
Nếu không có cấu trúc lược đồ được lưu trữ, bạn sẽ luôn phải sử dụng lược đồ tham chiếu hiện có trong cơ sở dữ liệu của bạn và di chuyển nó trở lại hoặc chuyển tiếp mỗi khi bạn thay đổi nhánh/cam kết; một số trường hợp trong thế giới thực có thể làm cho quá trình này không hiệu quả (ví dụ: khi một chi nhánh khác không có một số di chuyển bạn hiện có hoặc một số di chuyển không thể khôi phục được).
Một vấn đề khác là các bản dựng tự động, bị các vấn đề tương tự và thậm chí tệ hơn, chúng không thể áp dụng các thay đổi thủ công.
Nhược điểm duy nhất là nó đòi hỏi một thói quen nhất định, đó là, để lưu trữ nó mỗi khi bạn chạy một di chuyển. Dễ nói, nhưng cũng dễ quên.
Tôi không nói rằng bạn không thể sống mà không có development_structure.sql - tất nhiên bạn có thể. Nhưng nếu bạn có nó, khi thay đổi chi nhánh/cam kết bạn chỉ cần tải và quên; nếu không, bạn [có thể] phải trải qua một loạt các bước thủ công.
điều này giống với cấu trúc.sql trong đường ray 3? Nếu vậy, câu hỏi này phải được chỉnh sửa –
@boulder_ruby yes –