3

你好,

我是 NopCommerce 的新手。我对 Nop.Core、Nop.Data 和 Nop.Services 进行了更改。我对 Nop.web 的一些控制器、模型和视图也进行了更改。

如果我希望将 nopcommerce 版本从 2.8 升级到 3.10,那么哪种方式既简单又最好。

1)我备份我的文件并获得更新。一旦更新完成,我可以只替换那些我已经更新并且与原始代码不同的部分吗?我可以在我的备份文件中添加新方法,但不在原始代码中吗?

2)或者我可以创建新插件或其他方式。

[例如:我在产品表中进行了更改,并添加了尺寸、年龄、颜色等新字段。]

请让我知道您的宝贵意见。

谢谢

4

2 回答 2

5

没有直接的正确或错误的答案。我建议我采取的方法。假设您在基本 nop 2.80 之上进行了代码更改和数据库更改。

地面工作

写下详细的修改清单。(您在 2.80 之上添加的其他功能。)

如果开箱即用支持您的任何修改,请检查 3.10。

我的修改计数是 250(非常详细,直到估计)。

方法

  1. 将 2.80 分贝升级到 3.10 分贝。
  2. 修改 3.10 代码以支持 2.80 的新功能。

数据库升级

  1. 找到一个好的数据库差异工具。例如:SQL 比较。
  2. 将您的生产(2.80)数据库恢复到您的开发电脑,并将 nop 3.10 数据库也安装到您的开发电脑中。
  3. 逐表比较两个数据库。基本上,您将通过比较 3.10 模式将 2.80 db 升级到 3.10 db。
  4. 通过比较 3.10 在 2.80 中更改/删除/添加新列。
  5. 创建 Store 信息(Store 表)。这是 3.10 中的新功能,大多数其他表都需要 StoreID。
  6. 更新客户数据以匹配 3.10 架构。
  7. 更新产品信息。ProductVariant 表现在与 Product 表合并。所以需要更新产品表。
  8. 更新订单详情。OrderVariant 现在是 OrderItem。所以移动数据。
  9. 移动其他表。

我曾经创建单个 SQL 脚本,

  1. 从备份文件恢复生产数据库。
  2. 每个表的脚本块,升级每个表并填充数据。

这使您可以灵活地运行和运行,如果有任何错误,甚至可以在脚本编写期间再次运行脚本,甚至这很有帮助。

除此之外,如果您将 2 个或多个商店合并为一个,

  1. 在步骤 5 中添加所有商店信息。
  2. 现在从这一点开始为每个商店创建一个单独的脚本。
  3. 您需要为 OrderId 和客户 ID 找到不同的序列号。不可能一样。
  4. 添加第二家或更多商店时,请在添加前检查现有客户。

检查 01

现在使用新的 3.10 代码库并针对您迁移的数据库运行。如果您已正确完成迁移,一切都应该运行良好。

代码升级

因为没有ProductVariant 表,所以要对简单代码进行重大更改。所以所有的自定义逻辑都需要重新编写。

主要问题是,发票。如果您有多个商店,则每个商店都没有电子邮件设置。所以也必须自定义修改。

一个好的方法是,

  1. 做所有客户端电子商务的拳头。
  2. 然后做管理方面。
  3. 如果客户和管理员具有相同的功能,请一起做。例如,对下单工作流程的自定义修改。
  4. 插件不需要大的修改。

检查 02

使用更新的 3.10 代码库运行迁移的数据库。一切都应该工作。

在大日子

  1. 备份生产数据库和生产代码库。
  2. 运行升级脚本并替换新的代码库。
  3. 没有第三步,因为在此之前你已经完成了所有的艰苦工作。
  4. 好吧,如果你搞砸了,然后回滚。

注意事项

我通过测试学到了这些。感谢上帝,我在实际迁移之前找到了它们。

在我们迁移时,没有关于如何在 nop Commerce 端设置完整的多商店解决方案的详细说明。这里有一个关于如何在生产服务器中设置 nop commerce 的说明。但我并没有涵盖所有方面。

我们使用 VPS 服务器来托管我们的平台。如果您使用的是 VPS,请注意如果您正确设置了多商店,则需要使用SNI 。只有 IIS 8 及更高版本支持 SNI。这意味着您需要 Windows 2012 Server。有关SNI 的更多信息,请参见此处此处

我们使用 Pleask 来管理服务器。因此,将主域设置为主域,将所有其他商店设置为别名。在 IIS 端,RDP 进入 VPS 并使用 IIS8 的 SNI 功能为每个域设置 SSL

SNI 的缺点是,并非所有旧浏览器都支持它。见这里

限制

如果您使用的是 Pleask,那么电子邮件将无法正常工作。由于邮箱只会为主域创建,所有其他别名将共享相同的电子邮件帐户。因此,您可以通过别名电子邮件发送回复。不幸的是,它超出了 nop 商业开发范围。

我还没有找到解决方案。致力于此。

于 2013-10-01T05:37:27.827 回答
0

我建议增量地做数据库。根据升级指南,您必须一次应用一个升级脚本,只需阅读指南并掌握它。

于 2013-10-25T03:45:47.703 回答