Nếu bạn cần hoặc muốn các tính năng dành riêng cho cơ sở dữ liệu mà ActiveRecord không hiểu thì bạn nên chuyển sang db/structure.sql để theo dõi lược đồ của bạn. db/structure.sql là một kết xuất thô của lược đồ của bạn được thực hiện bằng cách sử dụng các công cụ gốc của cơ sở dữ liệu, vì vậy nó sẽ chứa các trình kích hoạt, ràng buộc KIỂM TRA, chỉ mục trên kết quả hàm và mọi thứ khác.
Chuyển đổi dễ dàng:
- Cập nhật
config/application.rbcủa bạn để chứaconfig.active_record.schema_format = :sql. - Thực hiện
rake db:structure:dumpđể lấydb/structure.sqlban đầu . - Xóa
db/schema.rbtừ cây thư mục của bạn và kiểm soát sửa đổi. - Thêm
db/structure.sqlđể kiểm soát sửa đổi. - Điều chỉnh thói quen cào của bạn:
- Sử dụng
db:structure:dumpthay vìdb:schema:dump - Sử dụng
db:structure:loadthay vìdb:schema:load
- Sử dụng
Mọi thứ khác sẽ hoạt động như bình thường (tất nhiên, giả sử rằng bạn khỏe mạnh và sử dụng PostgreSQL để phát triển, thử nghiệm và sản xuất).
Với thay đổi này được thực hiện, trình kích hoạt của bạn sẽ được theo dõi trong db/structure.sql và việc tạo lại cơ sở dữ liệu sẽ không làm mất chúng.