前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开源项目nopCommerce的环境搭建

开源项目nopCommerce的环境搭建

原创
作者头像
东风压倒西风
修改2022-11-15 18:31:15
9011
修改2022-11-15 18:31:15
举报
文章被收录于专栏:卓谷山

.net的网上商城的开源项目nopCommerce的环境搭建过程中,遇到了点问题,记录如下。

1.ERROR: type “citext” does not exist

或者

安装失败: The NpgsqlDbType 'Citext' isn't present in your database. You may need to install an extension or upgrade to a newer version.

image.png
image.png

原因是没有安装postgresql的“citext”扩展

解决方案如下:

  • 查看是否安装了该扩展:
代码语言:sql
复制
SELECT e.oid,e.extname,n.nspname from pg\_extension e JOIN pg\_namespace n on e.extnamespace = n.oid ;

执行结果如下:

代码语言:javascript
复制
postgres=# 
  oid  | extname |  nspname   
-------+---------+------------
 13538 | plpgsql | pg_catalog
 16388 | citext  | public
(2 rows)

如果没有安装citext扩展的话,应该不会出现上述中的第二条记录。

  • 安装扩展
代码语言:sql
复制
CREATE EXTENSION IF NOT EXISTS citext ;
ALTER EXTENSION citext UPDATE TO '1.6';

备注:

代码语言:shell
复制
cd /usr/share/postgresql/15/extension
ls
  • 可以看到相应扩展的sql文。
image.png
image.png

2. docker的执行

同目录下,放着DockerFile和docker-compose.yml文件,然后在该目录下执行:

代码语言:shell
复制
docker build .
docker-compose up -d

其中 docker-compose的内容如下:

代码语言:yaml
复制
version: "3.4"
services:
    nopcommerce_web:
        build: .
        container_name: nopcommerce
        ports:
            - "80:80"
        depends_on:
            - nopcommerce_database
    nopcommerce_database:
        image: "postgres:latest"
        container_name: "postgre_db"
        volumes:
            - "nopcommerce_data:/var/lib/postgresql/data"
        restart: "always"
        ports:
            - "5432:5432"        
        environment:
          POSTGRES_HOST_AUTH_METHOD: "trust"       
          POSTGRES_USER: "postgres"
          POSTGRES_DB: "postgres"   
          POSTGRES_PASSWORD: "nopCommerce_db_password"

volumes:
  nopcommerce_data:   

3. install的时候,遇到这个问题

安装失败: An exception was thrown while activating Nop.Data.Migrations.MigrationManager -> λ:System.Lazy`1[FluentMigrator.Runner.IVersionLoader, FluentMigrator.Runner, Version=3.3.2.0, Culture=neutral, PublicKeyToken=aacfc7de5acabf05] -> λ:FluentMigrator.Runner.IVersionLoader.

image.png
image.png

或者

安装失败: Sequence contains more than one element

image.png
image.png

大概原因是第一次失败,第二次再运行的时候,如果勾选了【插入测试数据】的话,会出现这个问题。

索性将db的docker容器删掉,重新来一遍。

来一遍之前,如果【App_Data】目录下,存在【appsettings.json】文件的话,要删掉。


成功以后,界面应该是这个样子。

image.png
image.png

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.ERROR: type “citext” does not exist
  • 2. docker的执行
  • 3. install的时候,遇到这个问题
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档