내 Rails 앱에서 문자열 열의 기본 제한을 알려주지 못하기 때문에 내 googlefu가 약해 야합니다 (에서 호스팅 됨). Heroku, PostgreSQL을 데이터베이스로 사용).레일 3/포스트그레스 - 적용하지 않는 경우 문자열 길이 : 스키마에서의 제한
도움이 될 것입니다.
내 Rails 앱에서 문자열 열의 기본 제한을 알려주지 못하기 때문에 내 googlefu가 약해 야합니다 (에서 호스팅 됨). Heroku, PostgreSQL을 데이터베이스로 사용).레일 3/포스트그레스 - 적용하지 않는 경우 문자열 길이 : 스키마에서의 제한
도움이 될 것입니다.
특정 제한을 지정하지 않으면 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 },
#...
이
이들은 적절한에 매핑됩니다 기본 데이터베이스 유형 (예 : 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에서
당신이 source에서 볼 수있는 문자열 유형에 대한 기본 제한이 없습니다 documentation에 명시된 바와 같이 어떤 길이 : 문자 길이 지정자없이 사용 변경시키는 경우
이 유형은 어떤 크기의 문자열을 받아
매우 유용한 답변입니다. 감사합니다. – jpwynn