ActiveRecord 데이터 유형에 대한 문서 페이지는 어디에 있습니까?
모든 데이터 유형 목록이있는 활성 레코드 문서 페이지를 찾을 수 없습니다.
누군가 나를 도울 수 있습니까?
마이그레이션 유형 (예 : 문자열, 정수, 날짜 시간 등)에 대해 이야기하는 경우 열 메서드 인 ActiveRecord :: ConnectionAdapters :: TableDefinition 이 필요합니다 . (레일 5 편집 : 연결 참조. add_column .)
이 업데이트에서 표준 유형은 다음과 같습니다.
:primary_key
:string
:text
:integer
:bigint
:float
:decimal
:numeric
:datetime
:time
:date
:binary
:boolean
의 구현은 :decimal
데이터베이스마다 다르므로 가능한 한 피하고 싶습니다. 데이터베이스 (예 : :polygon
MySQL)에서 지원하는 한이 목록에없는 유형을 사용할 수 있지만 이것은 데이터베이스에 구애받지 않으며 피해야합니다.
소스에서 ActiveRecord 데이터 유형 을 볼 수도 있습니다. 각 DBMS 어댑터에는 자체 매핑이 포함되어 있습니다. 예를 들어, MySQL의 경우 https://github.com/rails/rails/blob/master/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb#L148 파일을 보거나 현재 코드 줄에서 가져옵니다. DBMS 어댑터 :
ActiveRecord::Base.connection.native_database_types.keys
다음은 데이터베이스 어댑터 유형의 기본 매핑입니다.
이는 2015 년 2 월 13 일자 Rails 소스 코드 (Rails 4.2)를 기반으로합니다.
누군가가 이러한 데이터 유형이 사용중인 데이터베이스에 매핑되는 방식을보고 싶어하는 경우.
github의 rails 소스 코드에서 쉽게 얻을 수 있습니다.
예를 들면
Rails 데이터 유형을 mysql 데이터 유형에 매핑합니다.
NATIVE_DATABASE_TYPES = {
:primary_key => "int(11) auto_increment PRIMARY KEY",
:string => { :name => "varchar", :limit => 255 },
:text => { :name => "text" },
:integer => { :name => "int", :limit => 4 },
:float => { :name => "float" },
:decimal => { :name => "decimal" },
:datetime => { :name => "datetime" },
:time => { :name => "time" },
:date => { :name => "date" },
:binary => { :name => "blob" },
:boolean => { :name => "tinyint", :limit => 1 }
}
https://github.com/rails/rails/blob/master/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb#L148 에서 찾을 수 있습니다.
그리고 누군가가 postgreSQL을 원한다면 여기로 가십시오.
NATIVE_DATABASE_TYPES = {
primary_key: "serial primary key",
bigserial: "bigserial",
string: { name: "character varying" },
text: { name: "text" },
integer: { name: "integer" },
float: { name: "float" },
decimal: { name: "decimal" },
datetime: { name: "timestamp" },
time: { name: "time" },
date: { name: "date" },
daterange: { name: "daterange" },
numrange: { name: "numrange" },
tsrange: { name: "tsrange" },
tstzrange: { name: "tstzrange" },
int4range: { name: "int4range" },
int8range: { name: "int8range" },
binary: { name: "bytea" },
boolean: { name: "boolean" },
bigint: { name: "bigint" },
xml: { name: "xml" },
tsvector: { name: "tsvector" },
hstore: { name: "hstore" },
inet: { name: "inet" },
cidr: { name: "cidr" },
macaddr: { name: "macaddr" },
uuid: { name: "uuid" },
json: { name: "json" },
jsonb: { name: "jsonb" },
ltree: { name: "ltree" },
citext: { name: "citext" },
point: { name: "point" },
bit: { name: "bit" },
bit_varying: { name: "bit varying" },
money: { name: "money" },
}
'IT박스' 카테고리의 다른 글
실행 파일이로드 할 dll을 어떻게 알 수 있습니까? (0) | 2020.10.27 |
---|---|
트렁크와 지점의 차이점을 찾으십니까? (0) | 2020.10.27 |
TreeMap 또는 HashMap? (0) | 2020.10.27 |
사람이 읽을 수 있고 사용할 수있는 짧지 만 고유 한 ID 생성 (0) | 2020.10.27 |
경고 : 원격 HEAD는 존재하지 않는 참조를 참조하므로 체크 아웃 할 수 없습니다. (0) | 2020.10.27 |