Ruby on Rails игнорирует столбцы UUID во время db: create - PullRequest
0 голосов
/ 29 января 2011

Я пытаюсь создать модель с чем-то вроде:

название вакансии: строка companyid: uuid

Однако, когда я запускаю db: create, он создает таблицу со столбцом «title», но просто игнорирует столбец «companyid». Конечно, приложение вылетает, потому что ActiveRecord не может найти столбец companyid. Если я добавлю столбец DB вручную, приложение будет работать (поэтому я знаю, что RoR знает, как обрабатывать этот тип данных) ..

Я бы хотел, чтобы мои сценарии подготовки и переноса БД работали правильно. Я использую PostgreSQL 9.0 и адаптер postgres-pg.

Что-нибудь особенное, что мне нужно сделать? Спасибо!

1 Ответ

4 голосов
/ 29 января 2011

Это должно помочь:

Ruby on Rails: UUID в качестве первичного ключа ActiveRecord

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

Существует также упрощенный тип в адаптере Postgres, который может быть полезен для понимания того, почему он работает после создания столбца вручную. Хотя он просто отображает UUID в строку.

Исправление миграций, чтобы они могли обрабатывать UUIDs Postgres, могло бы стать хорошим, но в то же время небольшим плодом для вклада, если кто-то, имеющий эту проблему, хотел бы внести свой вклад в Rails, но, учитывая, что UGID Postgres действительно, кажется, мало что делает, и ваше приложение должно генерировать идентификаторы, они могут быть просто строками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...