ActiveRecord sử dụng varchar(255)
(hoặc character varying (255)
để là pedantic) nếu bạn không chỉ định giới hạn cụ thể. Bạn luôn có thể nhảy vào PostgreSQL với psql
và nói \d your_table
để nhận bảng khi PostgreSQL nhìn thấy nó.
Tôi không nghĩ mặc định được quy định ở bất cứ đâu nhưng nó là right here in the source:
NATIVE_DATABASE_TYPES = {
:primary_key => "serial primary key",
:string => { :name => "character varying", :limit => 255 },
#...
Điều gần gũi nhất với một đặc điểm kỹ thuật là trong Migrations Guide:
Những điều này sẽ được ánh xạ vào một thích hợp loại cơ sở dữ liệu cơ sở, ví dụ với MySQL :string
được ánh xạ tới VARCHAR(255)
.
Nhưng đó không phải về PostgreSQL và không chính xác bảo đảm.
Là một sang một bên, nếu bạn đang sử dụng PostgreSQL, bạn nên hầu như luôn luôn đi thẳng đến :text
và giả vờ rằng :string
không tồn tại. PostgreSQL xử lý chúng giống nhau, ngoại trừ việc phải kiểm tra độ dài trên varchar
. Có một cuộc thảo luận nhiều hơn về điều này ở đây trong một câu trả lời khác của tôi: Changing a column type to longer strings in rails.
Nguồn
2011-11-14 23:45:12
câu trả lời hữu ích đặc biệt, cảm ơn bạn! – jpwynn