/ / Czy mogę zmienić schemat po stronie serwera bez zmiany schematu klienta synchronizowanego przez Zumero? - ios, sqlite, xamarin.forms, zumero

Czy mogę zmienić schemat po stronie serwera bez zmiany schematu klienta zsynchronizowanego z Zumero? - ios, sqlite, xamarin.forms, zumero

Jeśli zamierzamy użyć Zumero ... Czy schemat między zdalnym a lokalnym musi pozostać taki sam, czy nie? Ponieważ jeśli wdrożymy aplikację, nie będziemy w stanie zmienić lokalnego schematu.

Środowisko:

Xamarin.Forms w maszynie MAC, baza danych SQLite do synchronizacji z SQL Server

Odpowiedzi:

2 dla odpowiedzi № 1

W Zumero podczas tworzenia „DBFile” w ZSSMenedżer określasz, który podzbiór bazy danych serwera zostanie zsynchronizowany z klientem. Schemat wybranego podzbioru pozostanie taki sam między zdalną i lokalną bazą danych.

Od teraz Zumero 2.0, będziesz mógł zmienić schemat wserwer i te zmiany schematu zostaną automatycznie zastosowane do każdego klienta Zumero przy następnej synchronizacji. (Zobacz dokumentację, z którą łączył się Paul Roub, aby dowiedzieć się, jak to działa, oraz szczegółowe informacje na temat obsługi niektórych zmian schematu).

Z drugiej strony zmiany schematu wprowadzone na kliencie nie zostaną zastosowane na serwerze. Dlatego: Możesz bezpiecznie używać CREATE TABLE aby dodać tabele „tylko lokalne”, które nie zostaną zsynchronizowane z serwerem. Nie należy jednak używać ALTER TABLE ... ADD COLUMN na zsynchronizowanych stołach, ponieważ Zumero czasami spadai odtwórz tabelę (np. podczas stosowania zmiany schematu z serwera), w którym to przypadku utracisz wszystkie dane w niezsynchronizowanej kolumnie. Nie należy upuszczać ani zmieniać nazw zsynchronizowanych tabel, ponieważ spowoduje to błędy podczas procesu synchronizacji.


0 dla odpowiedzi nr 2

Z troską, możesz zmienić schemat po stronie serwera bez zmiany schematu po stronie klienta.

Jeśli dodasz nowe kolumny po stronie serwera, domyślnie będą nie być zsynchronizowany z bazą danych klienta, chyba że wyraźnie tego zażądasz.

Jeśli jednak zmienisz nazwę lub usuniesz kolumny, schemat klienta będzie automatycznie zmieni się przy następnej synchronizacji. To samo dotyczy dodawania / usuwania kluczy obcych / itp., Chociaż zmiany te niekoniecznie powodują problemy w aplikacji klienta.