Visão geral
Se você tiver um arquivo de domínio local criado ao executar um aplicativo cliente, poderá abri-lo no Realm Studio.
Se você ainda não tiver um arquivo de Realm, pode criar um importando um CSV, ou pode baixar um arquivo de demonstração.
Abra um arquivo de Realm local
Você pode usar o Realm Studio para abrir e explorar um arquivo de domínio local. Pode ser um arquivo gerado pela execução de um emulador em sua máquina local ou um arquivo de outra fonte. Algumas ferramentas de desenvolvimento permitem até mesmo que você visualize e edite o arquivo realm enquanto o emulador está em execução. Esse fluxo de trabalho oferece suporte à iteração rápida e simples para alterações em objetos e esquemas.
Encontre um arquivo Realm
O Realm armazena uma versão codificada binariamente de cada objeto e digita um único arquivo de domínio. O arquivo está localizado em um caminho específico que você define quando abre o domínio.
Para encontrar o caminho do arquivo de domínio padrão:
// 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}`);
O sistema de arquivos usado pelos emuladores Android não é acessível diretamente da máquina que executa o Realm Studio. Você deve baixar o arquivo do emulador antes de poder acessá-lo.
Primeiro, encontre o caminho do arquivo no emulador:
// Run this on the device to find the path on the emulator Realm realm = Realm.getDefaultInstance(); Log.i("Realm", realm.getPath());
Em seguida, baixe o arquivo usando ADB. Você pode fazer isso enquanto o aplicativo está em execução.
> adb pull <path>
Você também pode carregar o arquivo modificado novamente usando o ADB, mas somente quando o aplicativo não estiver em execução. Carregar um arquivo modificado enquanto o aplicativo está em execução pode corromper o arquivo.
> 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}")
Depois de saber o local do arquivo de realm local, você pode navegar até esse local na caixa de diálogo Open Realm file.
Observação
Arquivos em caminhos ocultos
No MacOS, o local padrão para arquivos emuladores Xcode está na pasta ~/Library
. Por padrão, este é um diretório oculto. Talvez você não consiga navegar até esse local a partir da caixa de diálogo Open Realm
file.
Utilize outra técnica para visualizar o arquivo, como Go to Folder
no Finder, e abra o domínio a partir daí.
Criar a partir de um CSV
Se você não tiver um arquivo de área local, poderá criar um a partir de um CSV no Realm Studio.
Quando você cria um domínio a partir de CSV, o Realm Studio infere estes detalhes:
O nome do seu CSV se torna o nome da classe no arquivo de região
A primeira linha do seu CSV se torna os nomes das propriedades da classe no reino
Os valores de cada coluna moldam os tipos de propriedade de classe. Uma coluna de valores "verdadeiro" e "falso" se torna um tipo de propriedade booleana. Uma coluna de números inteiros torna-se um tipo de propriedade inteiro, e assim por diante. Se o Realm Studio não consegue determinar o tipo de propriedade, torna-se uma string.
Por exemplo, um CSV denominado data.csv
com esta formatação:
1 device,number,flag 2 gizmo,1,TRUE 3 widget,2,FALSE
Torna-se um modelo de classe denominado data
que tem três propriedades:
device
, com um tipostring
number
, com um tipoint
flag
, com um tipobool
Adicionar mais dados ao domínio
Ao criar um novo arquivo de domínio a partir de um CSV, você pode receber esta mensagem:
"Não foi possível importar dados: Nome de classe (name-of-file.csv) ausente do esquema"
Se isso acontecer, pressione OK. Você verá que a criação de um realm a partir do seu CSV criou uma definição de classe, mas não há objetos no seu realm. A partir daqui, você pode Importar de um CSV para preencher seu real, com um objeto que mapeia para a definição de classe que você acabou de criar.
Baixe um exemplo
Se você é novo no Realm e não tem um arquivo realm ou CSV para importar, ainda pode experimentar o Realm Studio.
Ao abrir o Realm Studio, você verá uma opção para Download a demo Realm file.
Quando você clica no link para baixar o arquivo de demonstração no Realm Studio, você pode especificar um nome e um local para salvar um arquivo de área contendo dados de demonstração. Após baixar o arquivo, você pode utilizar a caixa de diálogo Open Realm file para abri-lo.
Erro ao abrir o arquivo de Realm
Se você receber um erro ao tentar abrir um arquivo de Realm, isso pode ser devido a uma incompatibilidade de versão entre o formato de arquivo Realm suportado no Realm Studio e o formato de arquivo Realm produzido pelo SDK.
Para verificar a compatibilidade, verifique as notas de versão da sua versão do SDK ou da versão do Realm Studio. Talvez seja necessário atualizar ou fazer downgrade do Realm Studio ou da versão do Realm SDK .
Essas mensagens de erro podem ser semelhantes 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.