Spec-Zone.ru › Ruby on Rails 5.2

модуль ActiveRecord::ConnectionAdapters::PostgreSQL::ColumnMethods

Общедоступные методы экземпляра

bigserial(*args, **options) Показать исходный код
# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 54
def bigserial(*args, **options)
  args.each { |name| column(name, :bigserial, options) }
end
bit(*args, **options) Показать исходный код
# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 58
def bit(*args, **options)
  args.each { |name| column(name, :bit, options) }
end
bit_varying(*args, **options) Показать исходный код
# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 62
def bit_varying(*args, **options)
  args.each { |name| column(name, :bit_varying, options) }
end
box(*args, **options) Показать исходный код
# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 134
def box(*args, **options)
  args.each { |name| column(name, :box, options) }
end
cidr(*args, **options) Показать исходный код
# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 66
def cidr(*args, **options)
  args.each { |name| column(name, :cidr, options) }
end
circle(*args, **options) Показать исходный код
# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 146
def circle(*args, **options)
  args.each { |name| column(name, :circle, options) }
end
citext(*args, **options) Показать исходный код
# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 70
def citext(*args, **options)
  args.each { |name| column(name, :citext, options) }
end
daterange(*args, **options) Показать исходный код
# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 74
def daterange(*args, **options)
  args.each { |name| column(name, :daterange, options) }
end
hstore(*args, **options) Показать исходный код
# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 78
def hstore(*args, **options)
  args.each { |name| column(name, :hstore, options) }
end
inet(*args, **options) Показать исходный код
# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 82
def inet(*args, **options)
  args.each { |name| column(name, :inet, options) }
end
int4range(*args, **options) Показать исходный код
# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 90
def int4range(*args, **options)
  args.each { |name| column(name, :int4range, options) }
end
int8range(*args, **options) Показать исходный код
# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 94
def int8range(*args, **options)
  args.each { |name| column(name, :int8range, options) }
end
interval(*args, **options) Показать исходный код
# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 86
def interval(*args, **options)
  args.each { |name| column(name, :interval, options) }
end
jsonb(*args, **options) Показать исходный код
# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 98
def jsonb(*args, **options)
  args.each { |name| column(name, :jsonb, options) }
end
line(*args, **options) Показать исходный код
# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 126
def line(*args, **options)
  args.each { |name| column(name, :line, options) }
end
lseg(*args, **options) Показать исходный код
# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 130
def lseg(*args, **options)
  args.each { |name| column(name, :lseg, options) }
end
ltree(*args, **options) Показать исходный код
# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 102
def ltree(*args, **options)
  args.each { |name| column(name, :ltree, options) }
end
macaddr(*args, **options) Показать исходный код
# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 106
def macaddr(*args, **options)
  args.each { |name| column(name, :macaddr, options) }
end
money(*args, **options) Показать исходный код
# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 110
def money(*args, **options)
  args.each { |name| column(name, :money, options) }
end
numrange(*args, **options) Показать исходный код
# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 114
def numrange(*args, **options)
  args.each { |name| column(name, :numrange, options) }
end
oid(*args, **options) Показать исходный код
# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 118
def oid(*args, **options)
  args.each { |name| column(name, :oid, options) }
end
path(*args, **options) Показать исходный код
# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 138
def path(*args, **options)
  args.each { |name| column(name, :path, options) }
end
point(*args, **options) Показать исходный код
# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 122
def point(*args, **options)
  args.each { |name| column(name, :point, options) }
end
polygon(*args, **options) Показать исходный код
# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 142
def polygon(*args, **options)
  args.each { |name| column(name, :polygon, options) }
end
primary_key(name, type = :primary_key, **options) Показать исходный код
# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 46
def primary_key(name, type = :primary_key, **options)
  if type == :uuid
    options[:default] = options.fetch(:default, "gen_random_uuid()")
  end

  super
end

Определяет поле первичного ключа. Поддерживается использование родного типа PostgreSQL UUID, и можно использовать его, определив ваши таблицы таким образом:

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

По умолчанию используется функция +gen_random_uuid()+ из расширения pgcrypto. Поскольку это расширение доступно только в PostgreSQL 9.4+, для более ранних версий можно явно установить значение по умолчанию, чтобы использовать +uuid_generate_v4()+ из расширения uuid-ossp вместо этого:

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, например.

Вызывается метод суперкласса
serial(*args, **options) Показать исходный код
# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 150
def serial(*args, **options)
  args.each { |name| column(name, :serial, options) }
end
tsrange(*args, **options) Показать исходный код
# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 154
def tsrange(*args, **options)
  args.each { |name| column(name, :tsrange, options) }
end
tstzrange(*args, **options) Показать исходный код
# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 158
def tstzrange(*args, **options)
  args.each { |name| column(name, :tstzrange, options) }
end
tsvector(*args, **options) Показать исходный код
# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 162
def tsvector(*args, **options)
  args.each { |name| column(name, :tsvector, options) }
end
END_OF_DOCUMENT_MARKER
uuid(*args, **options) Показать исходный код
# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 166
def uuid(*args, **options)
  args.each { |name| column(name, :uuid, options) }
end
xml(*args, **options) Показать исходный код
# File activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 170
def xml(*args, **options)
  args.each { |name| column(name, :xml, options) }
end

© 2004–2018 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API