Docs Menu
Docs Home
/ /
Estudio Realm

Abrir un archivo de reino

Si tienes un archivo Realm local que has creado ejecutando una aplicación cliente, puedes abrirlo en Realm Studio.

Si aún no tienes un archivo de reino, puedes crear uno importando un CSV o puedes descargar un archivo de demostración.

Puedes usar Realm Studio para abrir y explorar un archivo de dominio local. Este puede ser un archivo generado al ejecutar un emulador en tu equipo local o un archivo de otra fuente. Algunas herramientas de desarrollo incluso permiten ver y editar el archivo de dominio mientras el emulador está en ejecución. Este flujo de trabajo facilita la iteración rápida y sencilla de cambios en objetos y esquemas.

Realm almacena una versión en binario de cada objeto y tipo en un único archivo de realm. Este archivo se encuentra en una ruta específica que se define al abrir el realm.

Para encontrar la ruta de archivo de su reino predeterminado:

// Get on-disk location of the default Realm
let realm = try! Realm()
print("Realm is located at:", realm.configuration.fileURL!)
// Open a realm.
const realm = await Realm.open({
schema: [Car],
});
// Get on-disk location of the Realm
const realmFileLocation = realm.path;
console.log(`Realm file is located at: ${realm.path}`);

El sistema de archivos que utilizan los emuladores de Android no es accesible directamente desde el equipo que ejecuta Realm Studio. Debe descargar el archivo del emulador para poder acceder a él.

Primero, busque la ruta del archivo en el emulador:

// Run this on the device to find the path on the emulator
Realm realm = Realm.getDefaultInstance();
Log.i("Realm", realm.getPath());

Luego, descarga el archivo usando ADB. Puedes hacerlo mientras la aplicación está ejecutándose.

> adb pull <path>

También puedes volver a cargar el archivo modificado con ADB, pero solo cuando la aplicación no esté ejecutándose. Subir un archivo modificado mientras la aplicación está ejecutándose puede dañarlo.

> adb push <file> <path>
var realm = Realm.GetInstance();
Console.WriteLine($"Realm is located at: {realm.Config.DatabasePath}");
// Get on-disk location of the default Realm
final storagePath = Configuration.defaultStoragePath;
// See value in your application
print(storagePath);
config = SyncConfiguration.Builder(user, setOf(Item::class))
.initialSubscriptions { realm ->
add(
realm.query<Item>(
"owner_id == $0",
realmApp.currentUser!!.identity
),
"User's Items"
)
}
.build()
// Log on-disk location of the realm file
Log.v("My Tag", "Realm Path: ${config.path}")

Una vez que conozca la ubicación de su archivo de reino local, puede buscar esa ubicación desde el Open Realm file diálogo.

Nota

Archivos en rutas ocultas

En MacOS, la ubicación predeterminada para los archivos del emulador Xcode es en ~/Library Carpeta. Por defecto, este es un directorio oculto. Es posible que no pueda acceder a esta ubicación desde el cuadro de diálogo Open Realm file.

Utilice otra técnica para ver el archivo, como Go to Folder en el Finder, y abra el reino desde allí.

Si no tienes un archivo de reino local, puedes crear uno desde un CSV en Realm Studio.

Cuando creas un realm a partir de un CSV, Realm Studio infiere los siguientes detalles:

  • El nombre de su CSV se convierte en el nombre de la clase en el archivo de reino

  • La primera fila de su CSV se convierte en los nombres de propiedad de clase en el ámbito

  • Los valores de cada columna determinan los tipos de propiedad de la clase. Una columna con valores "true" y "false" se convierte en un tipo de propiedad booleano. Una columna con números enteros se convierte en un tipo de propiedad entero, y así sucesivamente. Si Realm Studio no puede determinar el tipo de propiedad, este se convierte en una cadena.

Por ejemplo, un CSV llamado data.csv con este formato:

1device,number,flag
2gizmo,1,TRUE
3widget,2,FALSE

Se convierte en un modelo de clase llamado data que tiene tres propiedades:

  • device, con un tipo string

  • number, con un tipo int

  • flag, con un tipo bool

1

En Realm Studio, vaya a: File > Create Realm from > CSV

2

Busque la ubicación de su archivo CSV y selecciónelo.

Presiona el botón Open.

3

Ingrese un nombre para el archivo de reino que se creará a partir de su CSV.

Busque la ubicación donde desea guardarlo.

Presiona el botón Save.

4

Cuando creas un nuevo archivo de reino desde un CSV, es posible que recibas este mensaje:

"Error al importar datos: Falta el nombre de la clase (nombre-del-archivo.csv) en el esquema"

Si esto ocurre,OK pulsa. Verás que al crear un dominio desde tu CSV se ha creado una definición de clase, pero no hay objetos en tu dominio. Desde aquí, puedes importar desde un CSV para completar tu dominio con objetos que se asignen a la definición de clase que acabas de crear.

Si eres nuevo en Realm y no tienes un archivo de reino o CSV para importar, aún puedes probar Realm Studio.

Cuando abras Realm Studio, verás una opción para Download a demo Realm file.

Al hacer clic en el enlace para descargar el archivo de demostración en Realm Studio, puedes especificar un nombre y una ubicación para guardar el archivo de realm que contiene los datos de demostración. Una vez descargado el archivo, puedes usar el cuadro de diálogo Open Realm file para abrirlo.

Si obtienes un error al intentar abrir un archivo realm, esto podría deberse a un desajuste de versión entre el formato de archivo Realm compatible con Realm Studio y el formato de archivo Realm creado por el SDK.

Para verificar la compatibilidad, consulte las notas de la versión de su SDK o su Versión de Realm StudioEs posible que necesites actualizar o degradar la versión de Realm Studio o del SDK de Realm.

Estos mensajes de error pueden parecerse a:

Realm file is currently open in another process which cannot share access
with this process. All processes sharing a single file must be the same
architecture.
The file is already opened by another process, with an incompatible
lock file format. Try up- or downgrading Realm Studio or SDK to match
their versions of Realm Core.

Volver

Ver datos con Device Sync

En esta página