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 № 1W 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.