Menu Docs
Página inicial do Docs
/ /
Atlas Device SDKs
/

Abrir um Arquivo de Realm

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.

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.

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í.

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:

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

Torna-se um modelo de classe denominado data que tem três propriedades:

  • device, com um tipo string

  • number, com um tipo int

  • flag, com um tipo bool

1

No Realm Studio, vá para: File > Create Realm from > CSV

2

Navegue até o local do seu arquivo CSV e selecione-o.

Pressione o botão Open.

3

Insira um nome para o arquivo de região que será criado a partir do seu CSV.

Navegue até o local onde você deseja salvá-lo.

Pressione o botão Save.

4

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.

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.

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.

Voltar

Ver Dados com o Device Sync

Nesta página