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.rb
của bạn để chứaconfig.active_record.schema_format = :sql
. - Thực hiện
rake db:structure:dump
để lấydb/structure.sql
ban đầu . - Xóa
db/schema.rb
từ 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:dump
thay vìdb:schema:dump
- Sử dụng
db:structure:load
thay 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.