将nopcommerce 2.8升级到3.10

ana*_*jar 3 nopcommerce asp.net-mvc-4

你好,

我是NopCommerce的新手.我在Nop.Core,Nop.Data和Nop.Services中进行了更改.我也在Nop.web的某些控制器,模型和视图中进行了更改.

如果我希望将nopcommerce版本从2.8升级到3.10,那么哪种方式简单易用.

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

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

[例如:我在产品表中进行了更改,并添加了大小,年龄,颜色等新字段.

请告诉我您的宝贵意见.

谢谢

Jey*_*ara 5

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

地面工作

写下详细的修改列表.(您在2.80之上添加的附加功能.)

如果您的任何修改是开箱即用的,请查看3.10.

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

途径

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

数据库升级

  1. 找一个好的数据库差异工具.例如:SQL比较.
  2. 将您的生产(2.80)DB恢复到您的开发者电脑并将nop 3.10 db安装到您的开发电脑中.
  3. 比较两个DB表和表.基本上,您将通过比较3.10架构将2.80 db升级到3.10 db.
  4. 通过比较3.10更改/删除/添加2.80中的新列.
  5. 创建商店信息(商店表).这是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代码库并针对迁移的数据库运行.如果您已正确完成迁移,那么一切都应该运行良好

代码升级

由于没有产品变量表,因此在代码简单方面需要进行重大更改.因此需要重新编写所有自定义逻辑.

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

一个好的方法是,

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

检查02

使用更新的3.10代码库运行迁移的数据库.一切都应该有效.

在大日子

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

注意事项

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

在我们迁移如何在nop商务方面设置完整的多商店解决方案时,没有详细的说明.有一个指令在这里在生产服务器上如何设置NOP电子商务.但我没有涵盖所有方面.

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

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

在SNI的下方,并非所有旧浏览器都支持它.看到这里.

限制

如果您使用的是Pleask,那么电子邮件将无法正常运行.由于将仅为主域创建电子邮箱,并且所有其他别名将共享相同的电子邮件帐户.所以你可以发送别名电子邮件的回复.不幸的是,它脱离了商业发展的范围.

我还没有找到解决方案.在这方面工作.