답변

17

특정 제한을 지정하지 않으면 ActiveRecord는 varchar(255) (또는 character varying (255))을 사용합니다. 언제든지 PostgreSQL에 psql으로 건너 뛰고 \d your_table라고하면 PostgreSQL에서 볼 수있는 테이블을 얻을 수 있습니다.

나는 기본 어디서나 지정 생각하지 않습니다하지만 right here in the source입니다 :

사양에 가장 가까운 건에
NATIVE_DATABASE_TYPES = { 
    :primary_key => "serial primary key", 
    :string  => { :name => "character varying", :limit => 255 }, 
    #... 

Migrations Guide :

이들은 적절한에 매핑됩니다 기본 데이터베이스 유형 (예 : MySQL :string)은 VARCHAR(255)에 매핑됩니다.

그러나 이것은 PostgreSQL에 관한 것이 아니며 반드시 보장하는 것은 아닙니다. 당신의 PostgreSQL을 사용하는 경우 여담으로


, 당신은 거의 항상 똑바로 :text로 이동해야하며 :string이 존재하지 않는 척. PostgreSQL은 varchar에서 길이 검사를해야한다는 것을 제외하고는 내부적으로 동일하게 취급합니다. 이 질문에 대한 또 다른 대답은 Changing a column type to longer strings in rails입니다.

NATIVE_DATABASE_TYPES = { 
     primary_key: "serial primary key", 
     bigserial: "bigserial", 
     string:  { name: "character varying" }, 
     text:  { name: "text" }, 
     #... 

당신은 액티브 그냥 character varying 설정합니다 제한을 지정하지 않고 당신이 문자열이 저장할 수있는 경우 : 레일 4에서

+0

매우 유용한 답변입니다. 감사합니다. – jpwynn

7

당신이 source에서 볼 수있는 문자열 유형에 대한 기본 제한이 없습니다 documentation에 명시된 바와 같이 어떤 길이 : 문자 길이 지정자없이 사용 변경시키는 경우

이 유형은 어떤 크기의 문자열을 받아