将nopcommerce 2.8升级到3.10

时间:2013-09-11 06:54:30

标签: asp.net-mvc-4 nopcommerce

您好,

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

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

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

2)或者我可能需要创建新的插件或其他方式。

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

请告诉我您的宝贵意见。

由于

2 个答案:

答案 0 :(得分:5)

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

地面工作

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

使用3.10检查是否支持任何修改。

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

方法

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

    数据库升级

    1. 找一个好的数据库差异工具。例如:SQL Compare。
    2. 将您的生产(2.80)数据库恢复到您的开发者电脑并将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. 移动其他表格。
    10. 我曾经创建过单个SQL脚本,

      1. 从备份文件中恢复生产数据库。
      2. 每个表的脚本块,升级每个表并填充数据。
      3. 这使您可以灵活地运行和运行,并在出现任何错误时再次运行脚本,甚至在脚本编写过程中这也很有用。

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

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

          现在采用新的3.10代码库并针对迁移的数据库运行。如果你已经正确地进行了迁移,那么一切都应该运作良好。

          代码升级

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

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

          一个好的方法是,

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

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

            大日子

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

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

              在我们迁移如何在nop商务方面设置完整的多商店解决方案时,没有详细的说明。关于如何在生产服务器中设置nop商务,有一条指令here。但我没有涵盖所有方面。

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

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

              SNI的缺点是,所有旧浏览器都不支持它。请参阅here

              限制

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

              我还没有找到解决方案。正在努力。

答案 1 :(得分:0)

我建议逐步增加数据库。根据{{​​3}},您必须逐个应用升级脚本,只需阅读指南并获取它。

相关问题