An Interest In:
Web News this Week
- April 19, 2024
- April 18, 2024
- April 17, 2024
- April 16, 2024
- April 15, 2024
- April 14, 2024
- April 13, 2024
July 27, 2021 12:23 am GMT
Original Link: https://dev.to/asyraf/rails-activerecord-data-types-32ip
Rails ActiveRecord Data Types
I usually curios to know about Data Types for ActiveRecord, but the Active Record Migration documentation itself does not have that information.
So, I do some Google search and here is the TL;DR.
The ActiveRecord data types available in Rails 6;
:primary_key
:string
: short text:text
: long text:integer
: whole numbers [-4, 0, 9, 772]:float
: double-precision floating-point numbers [3244.90]:decimal
: high-precision floating-point numbers [3244.2342343789212]:datetime
:time
:date
:binary
: 1 / 0:boolean
: true or false
These data types are used in instances such as migrations.
def change create_table :categories do |t| t.string :title t.boolean :is_subcategory t.string :permalink t.timestamps endend
Specific DBMS Data Type
NATIVE_DATABASE_TYPES = { primary_key: "bigint auto_increment PRIMARY KEY", string: { name: "varchar", limit: 255 }, text: { name: "text" }, integer: { name: "int", limit: 4 }, float: { name: "float", limit: 24 }, decimal: { name: "decimal" }, datetime: { name: "datetime" }, timestamp: { name: "timestamp" }, time: { name: "time" }, date: { name: "date" }, binary: { name: "blob" }, blob: { name: "blob" }, boolean: { name: "tinyint", limit: 1 }, json: { name: "json" }, }
NATIVE_DATABASE_TYPES = { primary_key: "bigserial primary key", string: { name: "character varying" }, text: { name: "text" }, integer: { name: "integer", limit: 4 }, float: { name: "float" }, decimal: { name: "decimal" }, datetime: {}, # set dynamically based on datetime_type timestamp: { name: "timestamp" }, timestamptz: { name: "timestamptz" }, 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" }, 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" }, line: { name: "line" }, lseg: { name: "lseg" }, box: { name: "box" }, path: { name: "path" }, polygon: { name: "polygon" }, circle: { name: "circle" }, bit: { name: "bit" }, bit_varying: { name: "bit varying" }, money: { name: "money" }, interval: { name: "interval" }, oid: { name: "oid" }, }
Rails data types mapping to different DB data types:
It is important to know not only the types but the mapping of these types to the database types, too:
The easy way
You can access this list everytime you want (even if you don't have Internet access) through:
rails generate model -h
The end
resources;
Original Link: https://dev.to/asyraf/rails-activerecord-data-types-32ip
Share this article:
Tweet
View Full Article
Dev To
An online community for sharing and discovering great ideas, having debates, and making friendsMore About this Source Visit Dev To