问题标签 [realm-migration]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 将 Realm 与应用程序和迁移捆绑在一起
我正在关注有关迁移和将领域与应用程序捆绑在一起的领域文档。
我正在使用以下代码将捆绑的领域复制为默认领域。效果很好。
这一切正常,我可以看到其中包含数据的正确 Realm 文件。但是,如果我使用领域 = 试试!Realm(),它返回的结果总是空的。
应该注意的是,我在 AppDelegate.swift 的顶部有以下声明
我不确定这个 uiRealm 的初始全局声明是否导致了这个问题。我也尝试过声明本地版本,但这似乎并没有解决它。
应该注意的是,如果我在 Realm 文件已经就位时重新运行应用程序,一切都很好。
java - java.lang.IllegalStateException:请求的表不在此领域
UserDatabse
我从领域中删除了一个条目Activity "A"
,当我在删除后测试它的大小UserDatabase
时返回“1”,然后我开始Activity B
,然后当以下行执行时:
我收到此错误:java.lang.IllegalStateException:
另外,当我在 Log 中打印时,活动 B 中的 UserDatabase 的大小为“0”。
android - 没有找到默认的 RealmConfiguration。即使在声明之后
我在第一次运行时定义默认数据库然后调用默认数据库我不知道为什么setDefaultConfuration
当我已经创建 default.realm 文件时它要求我调用。
这是声明:-
我找不到我做错了什么?还是有另一种声明领域数据库的方法?
任何帮助都会得到
感谢
android - 删除 PrimaryKey 后 Realm 没有配置更改
使用Realm我遇到了一些迁移问题,即使我不应该有任何问题。禁用所有迁移:
但是,我删除了@PrimaryKey
一个类,这似乎并没有显着改变 Realm,导致 Realm 没有被删除。不知道这并没有删除领域,我得到了关于重复@PrimaryKey
值的例外情况。由于我的新代码中没有任何 PK,因此需要大量挖掘才能找到它。
这是设计使然吗?如果是这样,首选的解决方案是什么?我目前使用的是 0.90.1 版本。
android - Android Realm 迁移问题:旧版本的应用程序会被新版本的数据文件卡住吗?
当使用包管理器 API 更新 Android 应用程序时,它是否有可能进入应用程序具有来自较新版本应用程序的数据文件但仍安装并在手机上运行旧版本应用程序的状态?
我正在诊断使用 Realm 1.0.0 数据库开发的客户返回的手机上的 Android 应用程序。由于某种原因,该应用程序似乎无法更新到我们软件的较新版本。该应用程序的较新版本具有架构 v4。该应用程序的旧版本具有架构 v3。我们不使用 Play 商店分发升级。我们有自己的网络服务器,应用程序会在其中下载自身的 APK 文件升级,然后通过调用包管理器来安装这些升级文件,其意图如下:
当应用程序启动时,它会崩溃并出现以下错误:
光盘上的领域比指定的领域更新。V4 与 V3。
如果我查看设置 > 应用程序,我可以看到安装的应用程序是使用我们架构的 V3 的旧版本。然而,应用程序从内部存储加载的 .realm 文件具有属于我们应用程序的较新版本的 v4 模式。
该应用程序在运行 Lollipop 5.0.2 的 Moto E2 手机上运行。
ios - 领域迁移,在哪里初始化
我正在尝试使用一种记录在案的迁移领域数据库和设置模式版本的方法。我正在使用的代码类型是:
这似乎是非常标准的代码,并且看起来被其他人使用。但是,似乎让我感到困惑的是我在初始化 Realm 实例的地方,这导致架构设置无法设置或持续存在。
我正在努力的是在哪里设置以下代码:
- 如果我把它放在@UIApplicationMain 上方的 AppDelegate 的顶部,它初始化得太早了
- 如果我创建一个控制器文件,我打算在迁移后调用一个函数,并将初始化程序放在它仍然不起作用的顶部
如果我将它放在 ViewController 的类中,如下面的代码所示,则会收到错误 Instance member uiRealm cannot be used on type XYZViewController
/li>
所以我的问题是:是否有关于在哪里初始化以及如何最好地迁移的最佳实践。
android - 领域支持 maven 或拥有其最新源的 jar
我在这里有一些奇怪的用例,我的项目分为 2 个模块,一个是 server-project,另一个是 android-app,现在它们都共享相同的模型类。在 Eclipse 中使用 maven 构建工具的服务器项目和在 Android Studio 中使用 gradle 的 android-app。
看起来领域没有 Maven 工件,也没有找到最新版本的 jar 文件。
请帮我弄清楚有点奇怪的情况。
java - 更改已配置领域的模块
我有一个关于将模块添加到领域配置以将领域限制为仅包含类的子集的问题。我知道可以通过定义自定义 RealmModule 然后在领域配置中指定该模块来完成。
我现在面临的情况是我已经在我的聊天应用程序的生产版本中定义了两个领域(例如领域 A 和 B)。领域 A 存储从我的 REST 服务器获取的数据,领域 B 存储与聊天线程对应的数据。我的应用中有 12 个模型类。这 12 个模型中有 11 个用于存储 REST 服务器数据,而剩下的 1 个模型用于存储聊天线程数据。
到目前为止,我还没有意识到可以使用 RealmModule 类来限制可以包含在特定领域的模式中的模型。所以目前,我的生产应用程序有两个领域,所有 12 个模型都用于这两个领域的架构中。在我的应用程序的下一个版本中,我对与 REST 数据相对应的几个模型进行了一些更改,并编写了迁移来解决这些更改。我现在面临的问题是,即使我只更改了与 REST 数据对应的模型,我也必须为 REST 领域和聊天线程领域提供迁移,因为这两个领域的架构都包含所有类。
在包含 RealmModule 之后,我正在添加用于在生产应用程序和当前开发版本中实例化领域配置的代码
我的生产代码:
添加RealmModule后的代码:
我的问题是,我能否安全地创建两个 RealmModule 类,一个包括所有 REST 模型类,一个包括聊天线程模型类,并部署这些更改而不会在从当前生产应用程序过渡到这个新版本的过程中造成任何问题?
当我部署新版本的应用程序时,Realm 将如何处理生产环境中已经存在的 .realm 文件(包含模式中的所有模型),该应用程序指定 RealmModules 限制领域模式仅处理所有模型类的子集?
如果我的方法不正确,那么有人可以解释我应该如何解决这个问题吗?
谢谢。
ios - 如何在 Objective c 中更新领域模型属性的类型?
我的 Objective-c 中有一个 RLMObject。我定义了一个属性,如:
但是现在,我需要将属性代码的类型更改为 int,例如:
如果我改变它,那么当我尝试访问模型时,我会收到一个错误,显示该类型是 NSString,现在是 int。
如何在不重新安装应用程序的情况下更改属性?
swift3 - 领域迁移:将对象从一个对象移动到另一个对象
我有三个对象:
现在我需要将Data
对象从移动Solution
到Customer
使其变为:
我不知道如何实现我的领域迁移方法,以便一切正常并且我不会丢失数据。