В андроиде у меня есть версия в мире 0.86. Я попытался обновить до 1.1.1, но потом он сделал ошибку, заявив, что мне нужна миграция области. Кто-нибудь знает, как перейти от одной версии к другой? Есть ли более безопасная версия, которую я могу обновить до этого, было бы проще реализовать? БлагодаряПереход на новую версию царства?
ответ
У нас есть примеры миграции здесь, что вы можете использовать, чтобы вы начали: https://github.com/realm/realm-java/blob/master/examples/migrationExample/src/main/java/io/realm/examples/realmmigrationexample/model/Migration.java
Миграция в общем задокументированы здесь: https://realm.io/docs/java/latest/#migrations
Простое решение для случая использования, когда вы используете Сферу как механизм кэширования сетевых запросов. Просто добавьте deleteRealmIfMigrationNeeded()
к вашему RealmConfiguration: https://realm.io/docs/java/latest/api/io/realm/RealmConfiguration.Builder.html#deleteRealmIfMigrationNeeded--
При обновлении Realm DB к новой версии, чтобы 1.0.0+ от любой старой версии, то это Если мы по умолчанию запустить приложение, то мы получили ошибку миграции. Однако, используя определение миграции, как показано ниже, мы можем решить эту проблему.
Определение Realm экземпляра приложения внутри класса Application, как показано ниже:
public class MainApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
Fabric.with(this, new Crashlytics());
VolleyHelper.init(this);
// The Realm file will be located in Context.getFilesDir() with name "default.realm"
RealmConfiguration config = new RealmConfiguration.Builder(this)
.schemaVersion(1)
.migration(new MyMigration())
.build();
Realm.setDefaultConfiguration(config);
}}
Если вы не сделаете какие-либо изменения в структуре базы данных и только обновление версии Realm затем Определить класс миграции, как показано ниже. Если вы измените структуру базы данных, вы должны определить это в классе MyMigration. Вы можете получить более подробную информацию о миграции здесь Realm Migration
public class MyMigration implements RealmMigration {
@Override
public void migrate(DynamicRealm realm, long oldVersion, long newVersion) {
}}
Другие уже связаны пример миграции и the docs, так что я просто скажу вам, что вы работаете в breaking change in 0.89.0
@PrimaryKey field value can now be null for String, Byte, Short, Integer, and Long types.
Older Realms should be migrated, using RealmObjectSchema.setNullable(),
or by adding the @Required annotation. (#2515).
Так что, если вам хотите избежать использования миграции в этом случае, вам просто нужно указать @Required
на своих @PrimaryKey
полях.
- 1. Переход на новую структуру
- 2. переход на версию sqlcipher для проекта ios
- 3. Переход на предыдущую версию приложения iphone
- 4. Переход на более высокую версию Access MDB
- 5. Переход на более раннюю версию 2.2.1
- 6. установить новую версию python
- 7. Установить новую версию git?
- 8. Переход на новую страницу - Приложение Windows 8
- 9. Переход на новую страницу с глобальным объектом
- 10. Qt HBoxLayout - переход виджетов на новую строку
- 11. Как проверить версию схемы моего царства, не открывая файл области?
- 12. Загрузить новую версию файла
- 13. использовать новую версию ADT
- 14. Xamarin.Forms всплывать «новую версию»
- 15. обновить код на более новую версию JQuery
- 16. Как выполнить новую версию проекта на GitHub?
- 17. Загрузить новую версию Live приложения на TestFlight
- 18. Проблемы с переходом на новую версию Roo
- 19. Использовать новую версию javamail на XPages
- 20. Как установить новую версию gcc на ubuntu
- 21. Как установить новую версию phpmyadmin на сервер?
- 22. Как перенаправить на новую версию компонента?
- 23. Загрузить новую версию пакета на nuget.org
- 24. Ссылка на новую версию библиотеки libpcap
- 25. Обновление ссылки на целевую новую версию
- 26. Перемещение схем Oracle на более новую версию
- 27. Невозможно установить новую версию Java на linux
- 28. Переход на существующую оплаченную версию приложения на бесплатную версию с покупкой приложения
- 29. Переход на новую версию JSF с многофункциональной, но более совместимой библиотекой
- 30. Приложение, которое ищет новую версию
Он должен мигрировать, потому что '@ PrimaryKey' стал нулевым в 0.89.0 – EpicPandaForce