Copy and Bundle a Realm File - .NET SDK¶
You might want to seed your mobile app with some initial data that will be available to users on the initial launch of the app. To do this, you:
- Build a temporary realm app,
- Make a copy of an existing realm (with only the data you want bundled), and then
- Bundle the Realm file in your app's shared project.
In your production app (the one that will use this bundled realm when first loading), you add a few lines of code to extract the realm and save it in the app data. The following sections provide more information on these steps.
For now, bundling a synced realm is not supported. If you are using Sync, the local database will be synced when it is initialized.
Copy a Realm File¶
- Create a new project with the same data models as your production app. Open an existing realm with the data you wish to bundle.
Use the WriteCopy() method to make a copy of the realm to a new location and/or name. The following code demonstrates this:
// open an existing realm var realm = Realm.GetInstance("myRealm.realm"); // Create a RealmConfiguration for the *copy* var config = new RealmConfiguration("bundled.realm"); // Make sure the file doesn't already exist Realm.DeleteRealm(config); // Copy the realm realm.WriteCopy(config); // Want to know where the copy is? var locationOfCopy = config.DatabasePath;
Include the Realm File in Your Project¶
Now that you have a copy of the realm with the "seed" data in it, you need to bundle it with your production application. The process of bundling depends on whether you are building a mobile app or Unity app:
Non-encrypted realm files are cross-platform compatible, which is why you can bundle the file in the shared project.
Using the Copied Realm File¶
Now that you have a copy of the realm included with your app, you need to add code to use it. The code you add depends on the type of app: