Я ищу любые советы и предложения по переходу с числовых идентификаторов c на идентификаторы UUID в Экто.
У меня есть проект с большим количеством отношений, и я я не могу просто сбросить БД и воссоздать его с UUID, что кажется самым простым решением, потому что я должен сохранить данные.
Моя идея была:
Добавить :uuid, :uuid
поле для таблицы
Заполните столбец :uuid
скриптом и Ecto.UUID.generate()
Измените таблицу на (:some_table, primary_key: false)
и введите в поле: :uuid, :uuid, primary_key: true
и удалите поле :id
.
Переименуйте поле :uuid
в :id
Хотя это выглядело идеально в моем уме, я, конечно, забыл о ссылках. Есть ли способ, с помощью которого я могу легко справиться со ссылками с нумерации c ID на UUID? Единственная идея, которая приходит мне в голову, - создать дополнительную таблицу, которая будет содержать старый идентификатор и новый UUID между 2-м и 3-м шагом, затем удалить старые ссылки и добавить новые на основе созданной таблицы. Буду признателен за любые предложения:)