没有直接的正确或错误的答案。我建议我采取的方法。假设您在基本 nop 2.80 之上进行了代码更改和数据库更改。
地面工作
写下详细的修改清单。(您在 2.80 之上添加的其他功能。)
如果开箱即用支持您的任何修改,请检查 3.10。
我的修改计数是 250(非常详细,直到估计)。
方法
- 将 2.80 分贝升级到 3.10 分贝。
- 修改 3.10 代码以支持 2.80 的新功能。
数据库升级
- 找到一个好的数据库差异工具。例如:SQL 比较。
- 将您的生产(2.80)数据库恢复到您的开发电脑,并将 nop 3.10 数据库也安装到您的开发电脑中。
- 逐表比较两个数据库。基本上,您将通过比较 3.10 模式将 2.80 db 升级到 3.10 db。
- 通过比较 3.10 在 2.80 中更改/删除/添加新列。
- 创建 Store 信息(Store 表)。这是 3.10 中的新功能,大多数其他表都需要 StoreID。
- 更新客户数据以匹配 3.10 架构。
- 更新产品信息。ProductVariant 表现在与 Product 表合并。所以需要更新产品表。
- 更新订单详情。OrderVariant 现在是 OrderItem。所以移动数据。
- 移动其他表。
我曾经创建单个 SQL 脚本,
- 从备份文件恢复生产数据库。
- 每个表的脚本块,升级每个表并填充数据。
这使您可以灵活地运行和运行,如果有任何错误,甚至可以在脚本编写期间再次运行脚本,甚至这很有帮助。
除此之外,如果您将 2 个或多个商店合并为一个,
- 在步骤 5 中添加所有商店信息。
- 现在从这一点开始为每个商店创建一个单独的脚本。
- 您需要为 OrderId 和客户 ID 找到不同的序列号。不可能一样。
- 添加第二家或更多商店时,请在添加前检查现有客户。
检查 01
现在使用新的 3.10 代码库并针对您迁移的数据库运行。如果您已正确完成迁移,一切都应该运行良好。
代码升级
因为没有ProductVariant 表,所以要对简单代码进行重大更改。所以所有的自定义逻辑都需要重新编写。
主要问题是,发票。如果您有多个商店,则每个商店都没有电子邮件设置。所以也必须自定义修改。
一个好的方法是,
- 做所有客户端电子商务的拳头。
- 然后做管理方面。
- 如果客户和管理员具有相同的功能,请一起做。例如,对下单工作流程的自定义修改。
- 插件不需要大的修改。
检查 02
使用更新的 3.10 代码库运行迁移的数据库。一切都应该工作。
在大日子
- 备份生产数据库和生产代码库。
- 运行升级脚本并替换新的代码库。
- 没有第三步,因为在此之前你已经完成了所有的艰苦工作。
- 好吧,如果你搞砸了,然后回滚。
注意事项
我通过测试学到了这些。感谢上帝,我在实际迁移之前找到了它们。
在我们迁移时,没有关于如何在 nop Commerce 端设置完整的多商店解决方案的详细说明。这里有一个关于如何在生产服务器中设置 nop commerce 的说明。但我并没有涵盖所有方面。
我们使用 VPS 服务器来托管我们的平台。如果您使用的是 VPS,请注意如果您正确设置了多商店,则需要使用SNI 。只有 IIS 8 及更高版本支持 SNI。这意味着您需要 Windows 2012 Server。有关SNI 的更多信息,请参见此处和此处
我们使用 Pleask 来管理服务器。因此,将主域设置为主域,将所有其他商店设置为别名。在 IIS 端,RDP 进入 VPS 并使用 IIS8 的 SNI 功能为每个域设置 SSL
SNI 的缺点是,并非所有旧浏览器都支持它。见这里。
限制
如果您使用的是 Pleask,那么电子邮件将无法正常工作。由于邮箱只会为主域创建,所有其他别名将共享相同的电子邮件帐户。因此,您可以通过别名电子邮件发送回复。不幸的是,它超出了 nop 商业开发范围。
我还没有找到解决方案。致力于此。