IT박스

ActiveRecord 데이터 유형에 대한 문서 페이지는 어디에 있습니까?

itboxs 2020. 10. 27. 07:58
반응형

ActiveRecord 데이터 유형에 대한 문서 페이지는 어디에 있습니까?


모든 데이터 유형 목록이있는 활성 레코드 문서 페이지를 찾을 수 없습니다.

누군가 나를 도울 수 있습니까?


마이그레이션 유형 (예 : 문자열, 정수, 날짜 시간 등)에 대해 이야기하는 경우 메서드 인 ActiveRecord :: ConnectionAdapters :: TableDefinition 이 필요합니다 . (레일 5 편집 : 연결 참조. add_column .)

이 업데이트에서 표준 유형은 다음과 같습니다.

  • :primary_key
  • :string
  • :text
  • :integer
  • :bigint
  • :float
  • :decimal
  • :numeric
  • :datetime
  • :time
  • :date
  • :binary
  • :boolean

의 구현은 :decimal데이터베이스마다 다르므로 가능한 한 피하고 싶습니다. 데이터베이스 (예 : :polygonMySQL)에서 지원하는 한이 목록에없는 유형을 사용할 수 있지만 이것은 데이터베이스에 구애받지 않으며 피해야합니다.


소스에서 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" },
      }

참고 URL : https://stackoverflow.com/questions/3956186/where-is-the-documentation-page-for-activerecord-data-types

반응형