Kooboo CMS技术文档之三:切换数据存储方式
切换数据存储方式包括以下几种:
将文本内容存储在SqlServer、MySQL、MongoDB等数据库中
将站点配置信息存储在数据库中
将后台用户信息存储在数据库中
将会员信息存储在数据库中
将图片、视频等媒体资源存储在网站目录以外的地方
切换内容数据库
Kooboo CMS默认文本数据使用XML文件存储的方式,媒体资源使用文件夹存储的方式,在多数据情况下,我们建议开发人员在开发时使用默认的存储方式,等到部署时再整站点导入到生产环境。
切换文本内容(TextContent)的存储方式
Kooboo CMS默认将文本内容以XML的形式存储,这里以存储到SqlServer为例简要描述步骤:
- 导出已经创建好的站点。
- 从https://github.com/Tsingbo-Kooboo/KoobooMvc5/releases/latest下载“Content_Providers.zip”并解压,找到里面的SQLServer子目录。
- 将SQLServer目录中的所有文件(Kooboo.CMS.Content.Persistence.SQLServer.dll与SqlServer.config)拷贝到Kooboo CMS的Bin目录中。
- 修改相应的连接串配置文件(SqlServer.config)。
- 重新创建或导入站点。
其它几种数据存储(站点配置信息、后台用户信息、会员信息)的切换方式都类似,就不一一详谈。
切换媒体内容(MediaContent)的存储方式
Kooboo CMS默认将媒体资源存储在站点内容目录下(位于/Cms_Data/Contents/{RepositoryName}/Media下),同时Kooboo CMS也支持将媒体资源存储在Azure blob storage或者自建的文件系统中。存储在Azure blob storage的切换方式与文本内容的切换方式类似,就不重复描述。
以下简要说说自建文件系统的搭建方法:
- 从这里下载“FileServer_Web.zip”并解压。
- 在IIS中新建一个站点(以下称之为“资源站”)并指向上一步解压的目录。
- 修改资源站中web.config里面appSettings中的几个值:
AccountName:账号名,可以设置自己喜欢的用户名,该用户名与CMS中的用户名没有关系。
AccountKey:密码,可以设置自己喜欢的密码。
BaseUri:域名地址,媒体资源的url会与此有关,请确保该地址的准确性,也可放空。
- 从“Content_Providers.zip”解压的目录里面找到FileServerProvider子目录,并把里面的所有文件拷贝到Kooboo CMS的Bin目录中。
- 修改配置文件(FileServerProviderSettings.config)中的几个值:
AccountName:账号名,需要与“资源站”的web.config中的值一样。
AccountKey:密码,需要与“资源站”的web.config中的值一样。
Endpoint:域名地址,填写“资源站”所在的URL地址。
切换数据库常见的问题
数据丢失
切换为无结构的数据库(MongoDB、CouchBase)后,如果站点没有重新导入,站点运行不会出错,但是内容数据将会丢失。提示Invalid object name
切换为有结构数据库(SQLServer,SQLCe,MySQL)后,如果站点没有重新导入,在运行时会出现找不到数据表的错误。因为有结构数据库,需要重新导入站点来重建数据表和导入数据。
Kooboo CMS技术文档之三:切换数据存储方式的更多相关文章
- Kooboo CMS技术文档之一:Kooboo CMS技术背景
语言平台 依赖注入方案 存储模型 1. 语言平台 Kooboo CMS基于.NET Framework 4.x,.NET Framework 4.x的一些技术特性成为站点开发人员使用Kooboo CM ...
- Kooboo CMS技术文档之五:站点配置管理
站点关系 管理站点间的关系,站点可以有子站点,子站点继承父站点的部分配置数据,同时子站点还可以根据需要,本地化由父站点继承而来的数据.通过继承和本地化,可以让子站点在用最小的改动代价,来完成一个与父站 ...
- Kooboo CMS技术文档之四:Kooboo CMS的站点组成部分
Kooboo CMS本着功能独立分离的原则,将站点分为三部分组成:用户管理,站点管理和内容数据库管理.各个功能之间既可独立使用,也可以容易组成在一起形成一个完整的系统. 用户管理 管理整个系统内的用户 ...
- Kooboo CMS技术文档之二:Kooboo CMS的安装步骤
在IIS上安装Kooboo CMS Kooboo CMS安装之后 安装的常见问题 1. 在IIS上安装Kooboo CMS Kooboo CMS部署到正式环境相当简单,安装过程是一个普通MVC站点在I ...
- 利用POI工具读取word文档并将数据存储到sqlserver数据库中
今天实现了利用POI工具读取word文档,并将数据存储到sql数据库中,代码如下: package word; import java.io.File; import java.io.FileInpu ...
- postgresql使用文档之一 初始化数据存储区
17.2. 创建一个数据库集群(Database Cluster) 在你能做任何事情之前,你必须在磁盘上初始化一块存储空间.我们称这为一个数据库集群(database cluster). 一个Data ...
- Kafka 技术文档
Kafka 技术文档 目录 1 Kafka创建背景 2 Kafka简介 3 Kafka好处 3.1 解耦 3.2 冗余 3.3 扩展性 3.4 灵活性 & 峰值处理能力 3.5 可恢复性 ...
- 使用Jupyter Notebook编写技术文档
1.jupyter Notebook的组成 这里它的组件及其工程构成,帮助大家更好的用好jupyter Notebook 组件 Jupyter Notebook结合了三个组件: 笔记本Web应用程序: ...
- RabbitMq 技术文档
RabbitMq 技术文档 目录 1 AMQP简介 2 AMQP的实现 3 RabbitMQ简介 3.1 概念说明 3.2 消息队列的使用过程 3.3 RabbitMQ的特性 4 RabbitMQ使用 ...
随机推荐
- ASP.NET MVC 请求路径相关参数的获取
Request.ApplicationPath / Request.CurrentExecutionFilePath /Home/Index Request.FilePath /Home/Index ...
- Swift与C#的基础语法比较
背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...
- 轻量级“集合”迭代器-Generator
Generator是PHP 5.5加入的新语言特性.但是,它似乎并没有被很多PHP开发者广泛采用.因此,在我们了解PHP 7对Generator的改进之前,我们先通过一个简单却显而易见的例子来了解下G ...
- JavaScript之链式结构序列化
一.概述 在JavaScript中,链式模式代码,太多太多,如下: if_else: if(...){ //TODO }else if(...){ //TODO }else{ //TODO } swi ...
- MVC CodeFirst简单的创建数据库(非常详细的步骤)
最近在学习MVC的开发,相信有过开发经验的人初学一个新的框架时候的想法跟我一样最关心的就是这个框架如何架构,每个架构如何分工,以及最最关键的就是如何与数据库通信,再下来才是学习基础的页面设计啊等 ...
- ASP.NET Core 中文文档 第四章 MVC(4.6)Areas(区域)
原文:Areas 作者:Dhananjay Kumar 和 Rick Anderson 翻译:耿晓亮(Blue) 校对:许登洋(Seay) Areas 是 ASP.NET MVC 用来将相关功能组织成 ...
- 著名ERP厂商的SSO单点登录解决方案介绍一
SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.它包括可以将这次主要的登录映射到其他应用中用于同一个用户 ...
- Java集合类--温习笔记
最近面试发现自己的知识框架有好多问题.明明脑子里知道这个知识点,流程原理也都明白,可就是说不好,不知道是自己表达技能没点,还是确实是自己基础有问题.不管了,再巩固下基础知识总是没错的,反正最近空闲时间 ...
- Oracle 表空间和用户权限管理
一. 表空间 Oracle数据库包含逻辑结构和物理结构. 数据库的物理结构指的是构成数据库的一组操作系统文件. 数据库的逻辑结构是指描述数据组织方式的一组逻辑概念以及它们之间的关系. 表空间是数据库逻 ...
- Struts的文件上传下载
Struts的文件上传下载 1.文件上传 Struts2的文件上传也是使用fileUpload的组件,这个组默认是集合在框架里面的.且是使用拦截器:<interceptor name=" ...