跳至內容 跳至搜尋
方法
B
C
D
E
H
I
J
L
M
N
O
P
S
T
U
X

實體公開方法

bigserial(*names, **options)

# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 57
        

bit(*names, **options)

# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 61
        

bit_varying(*names, **options)

# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 65
        

box(*names, **options)

# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 137
        

cidr(*names, **options)

# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 69
        

circle(*names, **options)

# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 149
        

citext(*names, **options)

# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 73
        

daterange(*names, **options)

# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 77
        

enum(*names, **options)

# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 184
included do
  define_column_methods :bigserial, :bit, :bit_varying, :cidr, :citext, :daterange,
    :hstore, :inet, :interval, :int4range, :int8range, :jsonb, :ltree, :macaddr,
    :money, :numrange, :oid, :point, :line, :lseg, :box, :path, :polygon, :circle,
    :serial, :tsrange, :tstzrange, :tsvector, :uuid, :xml, :timestamptz, :enum
end

hstore(*names, **options)

# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 81
        

inet(*names, **options)

# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 85
        

int4range(*names, **options)

# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 93
        

int8range(*names, **options)

# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 97
        

interval(*names, **options)

# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 89
        

jsonb(*names, **options)

# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 101
        

line(*names, **options)

# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 129
        

lseg(*names, **options)

# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 133
        

ltree(*names, **options)

# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 105
        

macaddr(*names, **options)

# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 109
        

money(*names, **options)

# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 113
        

numrange(*names, **options)

# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 117
        

oid(*names, **options)

# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 121
        

path(*names, **options)

# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 141
        

point(*names, **options)

# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 125
        

polygon(*names, **options)

# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 145
        

primary_key(name, type = :primary_key, **options)

定義主鍵欄位。支援使用 PostgreSQL 原生的 UUID 類型,可以通過以下方式定義表格來使用:

create_table :stuffs, id: :uuid do |t|
  t.string :content
  t.timestamps
end

預設情況下,這將使用 `pgcrypto` 擴充功能中的 `gen_random_uuid()` 函數。由於該擴充功能僅在 PostgreSQL 9.4+ 中可用,對於早期版本,可以設定明確的預設值,改為使用 `uuid-ossp` 擴充功能中的 `uuid_generate_v4()`。

create_table :stuffs, id: false do |t|
  t.primary_key :id, :uuid, default: "uuid_generate_v4()"
  t.uuid :foo_id
  t.timestamps
end

要啟用必要的擴充功能,請在您的移轉中使用 `enable_extension` 方法。

要在沒有任何擴充功能的情況下使用 UUID 主鍵,請將 `:default` 選項設定為 `nil`。

create_table :stuffs, id: false do |t|
  t.primary_key :id, :uuid, default: nil
  t.uuid :foo_id
  t.timestamps
end

您也可以傳遞一個自定義的預存程序,該程序返回 UUID 或使用來自其他函式庫的不同 UUID 生成函數。

請注意,將 UUID 主鍵預設值設定為 `nil` 將要求您確保在儲存記錄之前始終提供 UUID 值(因為主鍵不能為 `nil`)。例如,這可以通過 `SecureRandom.uuid` 方法和 `before_save` 回調來完成。

# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 48
def primary_key(name, type = :primary_key, **options)
  if type == :uuid
    options[:default] = options.fetch(:default, "gen_random_uuid()")
  end

  super
end

serial(*names, **options)

# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 153
        

timestamptz(*names, **options)

# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 177
        

tsrange(*names, **options)

# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 157
        

tstzrange(*names, **options)

# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 161
        

tsvector(*names, **options)

# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 165
        

uuid(*names, **options)

# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 169
        

xml(*names, **options)

# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 173