【发布时间】:2015-07-30 19:47:17
【问题描述】:
如果我们要使用 Zumero... 远程和本地之间的架构是否需要保持不变?因为如果我们部署应用程序,我们将无法更改本地架构。
环境:
MAC 机中的 Xamarin.Forms,SQLite 数据库与 SQL Server 同步
【问题讨论】:
标签: ios sqlite xamarin.forms zumero
如果我们要使用 Zumero... 远程和本地之间的架构是否需要保持不变?因为如果我们部署应用程序,我们将无法更改本地架构。
环境:
MAC 机中的 Xamarin.Forms,SQLite 数据库与 SQL Server 同步
【问题讨论】:
标签: ios sqlite xamarin.forms zumero
在 Zumero 中,当您在 ZSS 管理器中创建“DBFile”时,您正在定义服务器数据库的哪个子集将与客户端同步。您选择的子集的架构将在远程数据库和本地数据库之间保持相同。
从Zumero 2.0 开始,您将能够更改服务器上的架构,这些架构更改将在下一次同步时自动应用于每个 Zumero 客户端。 (有关其工作原理以及如何处理某些架构更改的详细信息,请参阅 Paul Roub 链接到的文档。)
另一方面,在客户端上所做的架构更改不会应用到服务器上。因此:您可以安全地使用CREATE TABLE 添加不会与服务器同步的“仅限本地”表。但是,您不应该在同步表上使用ALTER TABLE ... ADD COLUMN,因为 Zumero 有时会删除并重新创建表(例如,从服务器应用架构更改时),在这种情况下,您将丢失非同步列中的所有数据。并且您不应删除或重命名已同步的表,因为这会在同步过程中导致错误。
【讨论】:
With care,您可以在不更改客户端架构的情况下更改服务器端架构。
如果您在服务器端添加新列,默认情况下它们将不同步到客户端数据库,除非您特别要求。
但是,如果您重命名或删除列,客户端架构将在下次同步时自动更改。如果添加/删除外键等,这同样适用,尽管这些更改不一定会给客户端应用程序带来麻烦。
【讨论】: