問題タブ [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 にコピーしています。これはうまく機能します。
これはすべて正常に機能し、データを含む正しい Realm ファイルを確認できます。ただし、 realm = を使用する場合は試してみてください! Realm()、それが返す結果は常に空です。
AppDelegate.swift の上部に次の宣言があることに注意してください。
この uiRealm の最初のグローバル宣言が問題を引き起こしているかどうかはわかりません。ローカルバージョンも宣言しようとしましたが、これは修正されていないようです。
Realm ファイルが既に配置されているときにアプリケーションを再実行しても問題ないことに注意してください。
java - java.lang.IllegalStateException: 要求されたテーブルはこのレルムにありません
UserDatabse
のレルムから 1 つのエントリを削除Activity "A"
し、削除後にテストすると、そのサイズは「1」UserDatabase
を返します。次に、次の行が実行されると開始しました。Activity B
このエラーが発生します:java.lang.IllegalStateException:
また、ログに出力すると、アクティビティ B の UserDatabase のサイズが「0」になります。
android - PrimaryKey を削除した後、Realm の構成は変更されません
Realmを使用すると、移行の問題が発生することはありませんが、問題が発生することはありません。すべての移行が無効になっています:
ただし、@PrimaryKey
レルムを大幅に変更していないように見えるクラスの を削除したため、レルムが削除されませんでした。これがレルムを削除しなかったことに気づかず、重複した@PrimaryKey
値に関する例外が発生しました。私の新しいコードには PK がなかったので、これを見つけるのにかなりの時間を要しました。
これは設計によるものですか?もしそうなら、好ましい解決策は何ですか?現在、バージョン 0.90.1 を使用しています。
ios - レルムの移行、初期化する場所
レルム データベースを移行し、スキーマ バージョンを設定する、文書化された方法の 1 つを使用しようとしています。私が使用しているコードの種類は次のとおりです。
これはかなり標準的なコードのようで、他の人が使用しているようです。ただし、私をつまずかせているように見えるのは、レルムインスタンスを初期化しているところです。これにより、スキーマ設定が設定または永続化されません。
私が苦労しているのは、次のコードをどこに設定するかです:
- これを @UIApplicationMain の上の AppDelegate の上部に配置すると、初期化が早すぎます
- 移行後に関数を呼び出す予定のコントローラーファイルを作成し、その先頭にイニシャライザーを配置すると、まだ機能しません
以下のコードのように ViewController のクラス内に配置すると、エラー Instance member uiRealm cannot be used on type XYZViewController が表示されます
/li>
だから私の質問は、どこで初期化するか、どのように移行するのが最善かについてのベストプラクティスはありますか?
android - Realm サポート Maven またはその最新ソースの jar を持つ
私はここで少し奇妙な使用例を持っています.私のプロジェクトは2つのモジュールに分割されています. Eclipse で Maven ビルド ツールを使用するサーバー プロジェクトと、Android Studio で gradle を使用する Android アプリ。
レルムに Maven アーティファクトがなく、最新バージョンの jar ファイルが見つからないようです。
少し奇妙なケースを理解するのを手伝ってください。
java - 構成済みレルムのモジュールの変更
モジュールをレルム構成に追加して、レルムがクラスのサブセットのみを含むように制限することについて質問がありました。カスタム RealmModule を定義し、レルム構成でそのモジュールを指定することで実行できることを理解しています。
私が今直面しているシナリオは、既に 2 つのレルム (レルム A と B など) がチャット アプリケーションのプロダクション バージョンに定義されているというものです。レルム A には REST サーバーから取得したデータが格納され、レルム B にはチャット スレッドに対応するデータが格納されます。アプリには 12 個のモデル クラスがあります。これらの 12 のモデルのうち 11 は REST サーバー データの格納に使用され、残りの 1 つのモデルはチャット スレッド データの格納に使用されます。
RealmModule クラスを使用して、特定の Realm のスキーマに含めることができるモデルを制限できることを今まで知りませんでした。現在、本番アプリには 2 つのレルムがあり、12 個のモデルすべてが両方のレルムのスキーマで使用されています。アプリの次のバージョンでは、REST データに対応するいくつかのモデルにいくつかの変更を加え、これらの変更に対処するための移行を記述しました。私が今直面している問題は、REST データに対応するモデルのみを変更したにもかかわらず、REST レルムとチャット スレッド レルムの両方のスキーマにすべてのクラスが含まれているため、移行を提供する必要があることです。
RealmModule を含めた後、実稼働アプリと現在の開発バージョンでレルム構成をインスタンス化するために使用するコードを追加しています
私の生産コード:
RealmModule を追加した後のコード:
私の質問は、2 つの RealmModule クラス (1 つはすべての REST モデル クラスを含み、もう 1 つはチャット スレッド モデル クラスを含む) を安全に作成し、現在の実稼働アプリからこの新しいバージョンに移行する過程で問題を引き起こすことなくこれらの変更をデプロイできるかということです。
すべてのモデル クラスのサブセットのみを処理するようにレルム スキーマを制限する RealmModules を指定するアプリの新しいバージョンをデプロイする場合、Realm は本番環境で既存の .realm ファイル (スキーマ内のすべてのモデルを含む) をどのように処理しますか?
私のアプローチが正しくない場合、誰かがこの問題にどのように対処すればよいか説明してもらえますか?
ありがとう。
ios - Objective cでレルムモデルプロパティのタイプを更新するには?
Objective-c に RLMObject があります。次のようなプロパティを定義しました。
しかし今、次のようにプロパティ コードのタイプを int に変更する必要があります。
これを変更すると、モデルにアクセスしようとすると、タイプが NSString で現在は int であることを示すエラーが表示されます。
アプリを再インストールせずにプロパティを変更するにはどうすればよいですか?