PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Cột thay đổi Rails Migration để sử dụng mảng Postgres

PostgreSQL không biết cách tự động chuyển đổi một cột của varchar vào một mảng varchar . Nó không biết bạn có thể dự định gì, vì nó không có cách nào để biết bạn nghĩ các giá trị hiện tại đang ở định dạng nào.

Vì vậy, bạn cần phải nói với nó; đó là những gì USING mệnh đề dành cho.

ActiveRecord dường như không hỗ trợ rõ ràng USING (không có gì đáng ngạc nhiên, vì nó hầu như không hỗ trợ ngay cả những tính năng cơ sở dữ liệu cơ bản nhất). Tuy nhiên, bạn có thể chỉ định văn bản SQL của riêng mình để di chuyển.

Giả sử các chuỗi của bạn được phân tách bằng dấu phẩy và bản thân có thể không chứa dấu phẩy, ví dụ:

def change
  change_column :table, :dummy_column, "varchar[] USING (string_to_array(dummy_column, ','))"
end

(Bản thân tôi không sử dụng Rails và chưa thử nghiệm điều này, nhưng nó phù hợp với cú pháp được sử dụng trong các ví dụ ở nơi khác).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Phương ngữ cần được cung cấp rõ ràng kể từ v4.0.0

  2. Làm thế nào để có được ngày hôm qua trong PostgreSQL

  3. Ràng buộc duy nhất với các điều kiện trong MYSQL

  4. PostgreSQL - số lượng tham số tối đa trong mệnh đề IN?

  5. Khớp cụm từ kết thúc bằng tiền tố với tìm kiếm toàn văn