ActiveRecord использует varchar(255)
(или character varying (255)
для педантизма), если вы не укажете конкретное ограничение. Вы всегда можете перейти в PostgreSQL с помощью psql
и произнести \d your_table
, чтобы получить таблицу так, как ее видит PostgreSQL.
Я не думаю, что значение по умолчанию указано где-либо, но это прямо здесь, в исходнике:
NATIVE_DATABASE_TYPES = {
:primary_key => "serial primary key",
:string => { :name => "character varying", :limit => 255 },
#...
Ближе всего к спецификации находится в Руководстве по миграции:
Они будут сопоставлены с соответствующим базовым типом базы данных, например, с MySQL :string
отображается на VARCHAR(255)
.
Но это не про PostgreSQL и не совсем гарантия.
Кроме того, если вы используете PostgreSQL, вы почти всегда должны идти прямо к :text
и делать вид, что :string
не существует. PostgreSQL внутренне обрабатывает их одинаково, за исключением того, что он должен выполнять проверку длины varchar
. Здесь, в другом моем ответе, есть еще немного обсуждения: Изменение типа столбца на более длинные строки в рельсах сильный>а>.
person
mu is too short
schedule
14.11.2011