問題タブ [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.

0 投票する
1 に答える
3124 参照

android - Realm は最初の呼び出しでクラッシュします。同じファイルを開くために使用された場合、構成が異なることはできません

次のエラーが表示されます。

ここ:

この行で:

私の設定は次のように行われます:

私の質問は、ファイルを開く構成を閉じる/閉じるにはどうすればよいですか?

0 投票する
1 に答える
493 参照

android - Realm データベースのスナップショットの再利用

Realm データベースに毎秒何度もデータが入力されています。データベースをプロットされた MPChartLib データとして表示しています。私の目標は、特定の時点でデータベースの写真を撮り、その情報を少し後で再利用することです。

私はいくつかのアプローチを試みていますが、両方で膠着状態に達しています。私の最初のアプローチは、ボタン クリックで最初のデータベースの情報を入力する 2 番目の Realm データベースを用意することです。私の 2 番目のアプローチは、データベースをファイルにエクスポートし、後で再度開くことです。

私の最初のアプローチでは、以下に示すように onCreateView に 2 つのデータベースを構築します。私は mRealm を動的に変化する Realm として使用し、mSRealm をボタンのクリック時にのみ変化する静的なものとして使用しています。

そして、各構成のbuildDatabaseコード

mRealm データベースが完了すると、ボタンを押して recordData フラグが true に設定されているかどうかをテストします。その場合、データベースをファイルとしてエクスポートするか、静的データベース スナップショットを動的スナップショットの現在の状態に更新しようとします。

私が使用しているファイルにデータをエクスポートするには:

私が使用している静的ベースにコピーするには:

このコードは、mSRealm の新しいインスタンスを作成する時点で停止します。これは、"begin populating etc" がログに表示されないためです。何が間違っているのかわかりません。

新しいフラグメントに移動して、静的データベースを使用したいと考えています。新しいフラグメントの onCreateView で、静的レルムを指す構成を作成しようとしています。

ただし、コードが試行されたコピーで停止するため、これをテストすることはできません。ファイル アプローチについては、MigrationExampleActivity をフラグメントとして書き直してプロジェクトに含め、バージョンの更新によって移行がどのように実行されるかをテストしようとしました。長期的な将来の参照のためにスナップショットをアーカイブすることが重要になるため、これはより重要になります。

これは、他の質問で読んだことから、ファイルからデータベースを「リロード」する方法だと思います。私のコードは、新しいインスタンスを取得する以下の時点で再びクラッシュします。

プロジェクトで realmjavamaster の構造を模倣しようとしましたが、生のディレクトリの設定に問題がある可能性があります。「常駐」レルムを使用する方法と、それらを再度開いて参照する方法、正しいパスを取得する方法などについては、あまり明確ではありません。

私の問題は参照にあるのか、新しいインスタンスを取得する際の詳細がわからないのかもしれません。多分私は何か基本的なことを見逃しています。

どんな援助も大歓迎です。

0 投票する
0 に答える
625 参照

android - Realm が存在するかどうかを確認するにはどうすればよいですか

すでに存在するレルム データベースのレルム構成を変更したいと考えています。私が今まで使用している私のアプリでは:

Playstore でアプリを公開した後、カスタム マイグレーションを使用して既存のデータベースを次のように変更できることがわかりました。

しかし、既存のデータベースの Realmconfiguration を変更することはできません。新しい構成で既存のデータベースを開こうとすると、次のようになります。

だから私が今やりたいことは - 移行機能を使用してデバイスに新しいデータベースを作成する - 古いデータベースがあるかどうかを確認する - デバイスに古いデータベースがある場合は、コンテンツを新しいデータベースにコピーし、古いデータベースを削除する

0 投票する
1 に答える
428 参照

android - NullPointerException void io.realm.RealmChangeListener.onChange()

プロジェクトにRealmデータベースを実装しようとしています。データベースにアイテムを追加するメソッドを持つクラスがあり、そのクラスを使用してそれらのメソッドを保存し、フラグメントで呼び出しますが、そうするとエラーが発生します:

ここで何が間違っていますか?

断片:

グローバル:

0 投票する
1 に答える
505 参照

ios - レルム: -[__NSArrayM UTF8String]: 認識されないセレクターがインスタンスに送信されました

アプリのアップグレード シナリオでクラッシュします。以下のエラーと警告が表示されます。しかし、この問題は、AppStore ビルドがインストールされていて、その上に新しい testflight ビルドをインストールした場合にのみ発生します。AppStoreビルドに開発者ビルドをインストールすると、正常に動作します。

エラー:

[__NSArrayM UTF8String]: 認識できないセレクターがインスタンスに送信されました

警告:書き込みトランザクション中に RLMRealm インスタンスの割り当てが解除され、保留中のすべての変更がロールバックされました。書き込みトランザクションの間、RLMRealm への参照を保持してください。

アプリのアイコンをタップするとすぐにクラッシュするので、スタックトレースはありません。

Realm バージョン: 0.96.3 & Xcode バージョン: 7.3

以下は、そのための私の移行コードです。

上記のすべては、newObjectsこのバージョンでのみ追加されます。

deleteRealmIfMigrationNeeded更新 1: Android の場合はわかります。iOSに同等のものはありますか?しか見つかりませんでしたdeleteAllObjects。もしそうなら、古い領域データを削除して新しい領域データを保存するだけです。

ありがとう。

0 投票する
2 に答える
470 参照

ios - オプションの Int プロパティには、移行中にゼロではなく nil が含まれます

次のモデルから Realm.IO 移行を実行しようとしています:

以下に:

ご覧のとおり、単一の変更は contactId のタイプにあります: optionalは optionalIntに変換する必要がありますString。私は次のように実装しました:

ただし、移行後、contactId (nil値) を持たないエンティティの contactId が "0" 文字列に等しいことがわかりました。oldObject!["contactId"] が nil ではなく 0 を返すようです。

この単純なタスクを実行する方法に関する情報や例が見つからないため、値を適切に取得/キャストするかどうか (キャストしようとしたかどうかもわかりませんRealmOptional<Int>) で、問題を提出する前にここで質問することにしました。ギットハブ。それはバグですか、それとも予想される動作ですか? 期待される動作である場合、適切に値を取得するにはどうすればよいですか?

PS:私のプロジェクトはオープンソースです。私は iOS が初めてで、独学で開発しているため、問題を簡単に再現できるリポジトリにプッシュしました( migration_issueブランチにあることに注意してください)。また、テスト中に新しいスキーマに移行する既存のファイルを使用して単体テストを行いました。.realmそれが役立つことを願っています。

PPS:ライブラリのバージョン 0.102.1 と 0.103.1 を試しました。

PPPS:私のサンプル .realm ファイルで Realm Browser が nil 値の contactId を表示しないことが言及されました。Realm Browser の問題だと思うので、別のブランチで別の単体テストを作成して、古いデータベースの値ゼロであることを証明しました。

0 投票する
1 に答える
833 参照

swift - レルムの移行: オブジェクトをリストに移行します

そのため、Realm スキーマを移行しようとしましたが、次のことができないようです。

にはoldSchema、次のものがあります。

newSchema、平日を平日のリストに移動しようとしています。

weekdayレルムの移行を実行するとき、オブジェクトを からoldSchemaweekdaysリストに移動するにはどうすればよいですかnewSchema

ありがとう。

0 投票する
1 に答える
2809 参照

java - レルム: 移行のフィールド名を変更

Realm DB 移行プロセスでフィールド名を変更したいと考えています。フィールド名の変更はサポートされていないようで、コピーと削除のみが唯一の方法です。

これは正しいです?それは多くの時間を消費します。

以下のコードは、コピーと削除の方法でフィールドvalueを変更する私の試みです。summary

0 投票する
2 に答える
2155 参照

ios - あるリストから別のリストへのレルム移行を実行する

私のモデルList<Item>では、そのアイテムが次のようなカスタム クラスの製品を保持する場所を移行したいと考えています。

単純にList<Product>

さまざまなことを試しましたが、実際には何も機能していないようです。たとえば、次のようなものです。

これにより、このオブジェクトは既に永続化されているというエラーが発生します。

移行ブロックで新しい製品を作成すると、領域内にオブジェクトが複製されます。

また、追加せずに次のようにリストに直接割り当てようとしましたnewObject!["products"]が、機能させることもできませんでした。

その移行の問題に対する本当の解決策は何ですか?誰かが私を正しい方向に向けることができますか?