Определить длину varchar для MySQL в рельсах - программирование
Подтвердить что ты не робот

Определить длину varchar для MySQL в рельсах

Я хочу определить размер varchar в рельсах, например, имя varchar (20), возраст varchar (6), через git - bash в процессе генерации модели.

Я искал в стеке, но не нашел ответа.

4b9b3361

Ответ 1

При создании столбцов, которые документированы для метода column, существует ряд опций. Они также применяются к add_column при последующих модификациях.

Самый сжатый способ сделать более ограниченный столбец:

t.string :name, :limit => 20
t.string :age, :limit => 6

В качестве примечания, очень необычно вводить ограничения, подобные этому в вашей базе данных, и лучшим решением является ограничение на модель с помощью validates. Например:

validates :name,
  :presence => true,
  :length => { :maximum => 20 }

MySQL имеет тенденцию урезать слишком длинные значения, не сообщая вам, поэтому ограничение длины не приведет к потере данных, особенно с такой короткой длиной.

Помните, что столбцы VARCHAR в базе данных являются переменной длиной, поэтому нет преимущества хранения десятизначного значения в VARCHAR(255) по сравнению с VARCHAR(20).