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
. Здесь немного больше обсуждается в одном из моих ответов: Изменение типа столбца на более длинные строки в рельсах .