Миграция, автоматическая генерация первичного ключа - PullRequest
0 голосов
/ 24 ноября 2018

Как я могу перенести поле первичного ключа, которое ранее не было настроено для автоматического создания?От

@PrimaryKey
private int id;

До

@PrimaryKey(autoGenerate=true)
private int id;

Поскольку Sqlite не поддерживает изменение столбцов, единственное, что я предполагаю, - это перенести всю таблицу как есть и сбросить ограничения.

Нужно ли вообще переносить базу данных во время процесса разработки или я могу просто перестроить ее, так как моя база данных быстро меняется, поэтому мне не нужно каждый раз мигрировать?

1 Ответ

0 голосов
/ 27 ноября 2018

Я предлагаю вам изменить свой подход: добавить уникальный идентификатор (UID) в качестве альтернативного способа идентификации записей.

Вы можете определить UID с аннотацией Entity в вашем POJO.

@Entity(indices={@Index(value="uid", unique=true)})
publi class Pojo {
  ..
  public String uid;
  ..
}

Когда вы вставляете запись в свою базу данных, вы можете определить поле uid с помощью:

String uuid = UUID.randomUUID().toString();

Вы можете использовать поле UUID для абсолютной идентификации ваших записей.Когда вы переходите на другую версию, вы не работаете со старыми идентификаторами, вы всегда можете работать с UID.

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