Migrar modos de sincronização de dispositivos
Nesta página
Os aplicativos do Atlas App Services podem ter um de dois modos de sincronização de dispositivo: sincronização baseada em partição e sincronização flexível. A sincronização baseada em partição é um modo mais antigo e você deve considerar migrar para a Flexible Sync.
A migração de um aplicativo do App Services que usa a sincronização baseada em partição para o Flexible Sync é um processo automático. Além de atualizar a versão do SDK, a migração dos modos de sincronização não exige nenhuma alteração no código do aplicativo cliente.
A migração resulta em clientes de sincronização baseada em partição se comunicando com um backend de Flexible Sync . Recomendamos eventualmente migrar o código do seu aplicativo cliente para usar também o Flexible Sync em vez do sincronização baseada em partição.
Requisitos
App Services App:
Atualmente, usa a sincronização baseada em partição
Atlas Cluster vinculado:
Use o MongoDB 5.0 ou posterior para compatibilidade com o Flexible Sync
Habilitar o auto-scaling de armazenamento
Ser uma camada do cluster M10+
Habilitar a configuração de oplog baseada em tempo
Aplicativos do cliente:
Versão mínima do Atlas Device SDK :
Swift SDK v10.40.0 ou posterior
Kotlin SDK v1.9.0 ou posterior
Node.js SDK v11.10.0 ou posterior
React Native SDK v11.10.0 ou posterior
.NET SDK v11.1.0 ou posterior
Java SDK v10.16.0 ou posterior
Tenha um reinício do cliente Handler configurado.
O que saber antes de migrar
A migração do modo de sincronização do seu aplicativo envolve alterações que afetam os aplicativos clientes e o backend do seu aplicativo. Você deve estar ciente dos efeitos e planejar com antecedência.
Os aplicativos clientes que não atendem ao requisito mínimo de versão do SDK não poderão ser sincronizados após a migração.
O tempo que leva uma migração é diretamente proporcional à quantidade de dados que precisa ser migrada. Quanto mais dados, mais tempo levará para migrar.
As migrações podem ser canceladas durante a migração ou revertidas dentro de um determinado período após a conclusão da migração.
As notificações de progresso não funcionarão após a migração porque o Flexible Sync não oferece suporte a elas.
Os aplicativos clientes que foram conectados ao backend da sincronização baseada em partição passarão por um client reset após o backend ser migrado para o Flexible Sync. Você deve usar um manipulador de reinício do cliente com a recuperação ativada para não perder as alterações pendentes anteriores ao reinício do cliente.
Criar novas tabelas em um backend de Flexible Sync migrado usando o modo de desenvolvimento de um cliente de Partition-Based Sync pode levar a um comportamento inesperado.
Estágios de migração
Você pode ver o estágio da sua migração na interface do usuário do App Services. Existem três estágios para uma migração do modo de sincronização:
Sincronizando metadados de sincronização baseada em partição
Nesse estágio, os aplicativos do cliente podem se conectar ao backend do seu aplicativo, mas as gravações locais não serão sincronizadas. Essas gravações serão perdidas se você não tiver um manipulador de reinício do cliente para recuperar as alterações não sincronizadas.
Os clientes receberão atualizações para collection sincronizadas, mas não poderão enviar uploads ou receber confirmações de upload.
Criando metadados de Flexible Sync
Os clientes não podem se conectar nesta etapa. A duração desse estágio é diretamente proporcional à quantidade de dados em collection sincronizadas.
Migração concluída
Manage Sync Migration aparece na página Realm Mobile Sync se a migração não tiver sido confirmada ou revertida.
Após a conclusão da migração, confira a seção Após a migração para obter mais informações sobre como os clientes de Partition-Based Sync interagem com o backend do Flexible Sync.
Migrar a sincronização baseada em partição para a Flexible Sync
Depois de iniciar a migração da sincronização baseada em partição para a Flexible Sync, o processo é principalmente automático. No entanto, você pode controlar partes importantes da migração.
Durante uma migração, você pode cancelá-la. Após uma migração, você pode revertê-la ou confirmá-la manualmente.
Iniciar migração
Antes de iniciar uma migração, certifique-se de que está ciente das etapas e efeitos da migração.
A migração geralmente tem efeitos semelhantes ao encerramento e reativação do Realm Mobile Sync. Existem alguns efeitos adicionais da migração:
Na interface do usuário do App Services, todas as páginas de configuração serão somente leitura. Por exemplo, telas de Regras, Esquemas, Funções e Triggers.
Seu aplicativo passará por um período de sincronização somente leitura e, em seguida, por um período de inatividade.
A nova configuração do Flexible Sync definirá o tempo máximo offline do cliente para 30 dias.
O armazenamento no seu cluster do Atlas usado pelos metadados do Realm Mobile Sync está temporariamente duplicado. Os metadados de sincronização baseada em partição e os metadados de Flexible Sync devem coexistir temporariamente. Dependendo do tamanho dos seus dados sincronizados, isso pode afetar o faturamento sempre que você migrar. Os metadados duplicados são removidos após a migração ser revertida ou confirmada.
Para migrar da sincronização baseada em partição para a Flexible Sync:
Navegue até a tela Device Sync :
Na interface do usuário do App Services, clique em Device Sync no menu de navegação esquerdo. A aba Dashboard é exibida por padrão.
Selecione a guia Configuration.
Clique em Start migration.
clique para ampliarRevise as informações do processo de migração e clique em Next: Migration Requirements.
Certifique-se de atender aos requisitos de migração e clique em Start Migration.
Observação
Interrupção de sincronização temporária
Os clientes não poderão sincronizar suas gravações locais até que a migração seja concluída.
Depois que a migração for concluída, os aplicativos clientes de Partition-Based Sync Go por um reinício do cliente. Em seguida, eles podem se comunicar com o backend do Flexible Sync do seu aplicativo. Você pode desativar e reativar a Flexible Sync, e os aplicativos clientes ainda se comunicarão com seu backend.
Se você reativar a sincronização baseada em partição , perderá o status de "migrado". Isso significa que você precisará fazer outra migração se quiser usar o Flexible Sync no backend com aplicativos cliente de sincronização baseada em partição .
Migrar permissões e regras
As permissões e regras da sua aplicação serão migradas automaticamente se as regras de sincronização baseada em partição tiverem equivalentes diretos às regras do App Services. Isso substituirá as Regras do App Services definidas anteriormente.
Na etapa 4 acima, você verá se suas permissões e regras podem ser migradas automaticamente. Na etapa Review Migration Process da interface do usuário do App Services, procure por Rules & Permissions.
Algumas estratégias de Sincronização baseada em partição não podem ser convertidas diretamente em regras do App Services. Talvez seja necessário migrar manualmente as permissões que incluem:
%function
operador.As regras de função não são compatíveis com o Flexible Sync e não podem ser migradas.
%or
,%not
,%nor
,%and
expansões.Essas permissões podem funcionar, mas há nuances suficientes para que você as teste para garantir o comportamento esperado. Testar novas permissões não funcionará no aplicativo que você está migrando. Em vez disso, crie um novo aplicativo de Flexible Sync para testar suas permissões migradas manualmente. Em seguida, aplique as permissões testadas ao aplicativo que você está migrando.
Consulte a lista de expansões compatíveis com Sincronização flexível para todas as expansões suportadas.
Você também deve verificar o Guia de permissões do Device Sync para obter mais informações sobre como trabalhar com permissões.
Cancelar migração
Você pode cancelar uma migração a qualquer momento enquanto ela estiver em andamento. Isso retornará à sua aplicação a sincronização baseada em partição, com todas as configurações como estavam antes do início da migração.
Se você cancelar uma migração, precisará começar desde o início com futuras tentativas de migração.
Para cancelar uma migração:
Navegue até a tela Device Sync :
Na interface do usuário do App Services, clique em Device Sync no menu de navegação esquerdo. A aba Dashboard é exibida por padrão.
Selecione a guia Configuration.
No banner de notificação, clique em Cancel Migration.
clique para ampliarIsso cancelará sua migração. Você precisará migrar novamente se quiser ativar o Flexible Sync no futuro.
Confirmar migração
Após a conclusão da migração, ela estará em um estado de avaliação. Você pode confirmar manualmente a migração para torná-la permanente ou reverter a migração para retornar seu aplicativo à sincronização baseada em partição.
Se você não confirmar ou reverter a migração, ela será confirmada automaticamente de acordo com sua oplog window mínima. Por exemplo, se a oplog window mínima for 48 horas, você terá 48 horas para reverter a migração.
Após a confirmação de uma migração, os metadados antigos da sincronização baseada em partição são excluídos e não é possível reverter a migração.
Para confirmar manualmente uma migração:
Navegue até a tela Device Sync :
Na interface do usuário do App Services, clique em Device Sync no menu de navegação esquerdo. A aba Dashboard é exibida por padrão.
Selecione a guia Configuration.
Na parte superior da página, clique no menu suspenso Manage migration e selecione Delete Partition-Based Sync metadata.
Confirme que você deseja excluir seus metadados e se comprometer com a migração para o Flexible Sync.
Importante
Depois de excluídos, você não poderá recuperar seus metadados de sincronização baseada em partição .
Reverter migração
Você pode reverter uma migração após ela ser concluída e antes de ser confirmada.
As migrações concluídas são automaticamente confirmadas de acordo com sua oplog window mínima. Você pode aumentar ou diminuir o tempo disponível para reverter uma migração ajustando a oplog window mínima.
Não é possível reverter uma migração que foi confirmada.
Semelhante ao cancelamento de uma migração, se você reverter uma migração, precisará começar do início com futuras tentativas de migração.
Para reverter uma migração:
Navegue até a tela Device Sync :
Na interface do usuário do App Services, clique em Device Sync no menu de navegação esquerdo. A aba Dashboard é exibida por padrão.
Selecione a guia Configuration.
Na seção Manage Sync , clique no menu suspenso Manage migration e selecione Revert back to Partition-Based Sync.
Isso reverterá sua migração. Você deve migrar novamente se quiser ativar o Flexible Sync no futuro.
Após a migração de backend
O backend migrado usa um campo de chave da partição em seus modelos de objeto para mapear os objetos cliente do sincronização baseada em partição para os equivalentes do Flexible Sync no backend. Se seus modelos de objeto não tiverem um campo de chave da partição} , o backend injetará automaticamente um em cada objeto criado pelo cliente de sincronização baseada em partição} .
Essas são algumas outras características do campo injetado que você deve estar ciente:
O campo injetado segue esta estrutura:
<yourPartitionKey> == <yourPartitionValue>
. A chave do campo é derivada da configuração antiga do backend da sincronização baseada em partição. O valor é derivado da configuração atual do cliente de sincronização baseada em partição.O campo injetado não sincroniza novamente com o cliente que criou o objeto. Isso significa que o cliente de origem não poderá ler o campo
partitionKey
injetado.
O cliente de sincronização baseada em partição cria automaticamente assinaturas de sincronização para cada tabela onde partitionKey == partitionValue
. Isso continuará até que você migre seu aplicativo de cliente para o Flexible Sync.
Após migrar seu aplicativo cliente para o Flexible Sync , o backend deixará de injetar o campo de chave da partição . Se o seu aplicativo cliente depender do campo de chave da partição para gerenciar assinaturas de sincronização, você deverá adicionar o campo de chave da partição aos seus modelos de objeto .
Caso contrário, os objetos criados em novas versões da sua aplicação não serão sincronizados com os clientes que usam versões mais antigas do código da sua aplicação cliente.
Migrar o aplicativo do cliente para o Flexible Sync
Depois que o backend do seu aplicativo for migrado para o Flexible Sync, recomendamos que você migre seu aplicativo cliente para o Flexible Sync. Quando você migrar seu aplicativo cliente para o Flexible Sync, o cliente parará de criar automaticamente assinaturas de sincronização para cada modelo de modelo de objetos de dados do seu aplicativo.
Também recomendamos remover todas as assinaturas de sincronização e, em seguida, criar novas assinaturas para seus dados. Essa é a maneira mais clara de controlar quais dados são sincronizados após uma migração.
Se você quiser remover assinaturas individuais, as assinaturas geradas automaticamente usam um formato de nomenclatura específico: flx_migrated_
+ o nome do seu modelo de objeto. Por exemplo, o nome da assinatura de um modelo de objeto Person
seria flx_migrated_Person
.
Você pode manter as assinaturas geradas automaticamente se não quiser removê-las e recriá-las. Mas, como essas assinaturas não são criadas no código do cliente, elas podem dificultar a manutenção e a extensão do código do cliente.
Para obter mais informações sobre como atualizar o código do cliente após migrar da Sincronização baseada em partição para a Flexible Sync, consulte: