当前位置: 首页 > news >正文

python做网站还是数据库泰安刘明是怎么挨办的

python做网站还是数据库,泰安刘明是怎么挨办的,wordpress如何正常打开二级菜单,wordpress返回顶部插件前言 前一篇文章说了MogDB适配Halo,【MogDB】将流行的博客系统Halo后端的数据库设置为MogDB,但是适配的是2.x版本#xff0c;由于2.x版本已经引入了对postgresql的支持#xff0c;而MogDB对于postgresql有很好的兼容性#xff0c;因此适配起来很简单。但是由于halo2.x的版本…前言 前一篇文章说了MogDB适配Halo,【MogDB】将流行的博客系统Halo后端的数据库设置为MogDB,但是适配的是2.x版本由于2.x版本已经引入了对postgresql的支持而MogDB对于postgresql有很好的兼容性因此适配起来很简单。但是由于halo2.x的版本进行了全部的重构从1.6版本并不能无痛升到2.x版本所以仍有很多用户在使用1.6版本。又由于Halo1.6版本并未适配postgresql只支持H2和MYSQL两种数据库因此不能像2.x那种适配直接改个数据库连接完事需要对halo的源码进行一些调整本文就记录一下MogDB适配Halo1.6的一些过程。 适配过程 先参考halo官方文档中1.6版本里使用mysql的安装方式把数据库连接进行修改直接启动会报错找不到postgresql的驱动这是因为halo1.6的jar程序并没有打包postgresql的驱动所以还是得下载源码来进行手动修改了 克隆halo1.6的代码 git clone -b release-1.6 https://gitee.com/halo-dev/halo.git打开build.gradle在dependencies里引入jdbc驱动(用runtimeOnly 和implementation应该都行) implementation io.mogdb:mogdb-jdbc:5.0.0.4.pg然后打包程序再试… 等等貌似没说这个程序要怎么打包其实对于java开发人员来说这个打包很简单我也就简单说下几个步骤具体细节大家自己去搜吧 装jdk环境记得配环境变量装gradle环境记得配环境变量命令行进入项目目录执行 gradle build 打包好了启动程序会发现报错 Flyway Teams Edition or PostgreSQL upgrade required: PostgreSQL 9.2 is no longer supported by Flyway Community Edition Flyway是一个数据库对象版本管理的组件可以用于在应用升级时管理数据库对象的升级。这个报错信息提示Flyway的社区版本已经不支持postgresql 9.2建议改用更高的数据库版本或者使用Flyway Teams版本。 其实这里由于Halo1.6已经停止维护不会再有升级因此我们可以把相关的代码完全去掉 打开.\halo\src\main\java\run\halo\app\listener\StartedListener.java 找到以下代码进行如下注释 public void onApplicationEvent(ApplicationStartedEvent event) {/* try {this.migrate();} catch (SQLException e) {log.error(Failed to migrate database!, e);} */this.initDirectory();this.initThemes();this.printStartInfo();this.configGit();}然后打包再试发现可以成功启动了前台web页面也可以打开。但是在前台页面进行初始化安装时报错了 org.springframework.orm.jpa.JpaSystemException: could not insert: [run.halo.app.model.entity.Post]; nested exception is org.hibernate.exception.GenericJDBCException: could not insert: [run.halo.app.model.entity.Post] ... Caused by: java.sql.SQLException: Start position [1] cannot exceed overall CLOB length [0]网上查说这是hibernate的bug,但是我觉得不像。这个报错的原因在于halo里对表字段的注解有几个字段加了Lob ,并且又声明了是string因此会把表建成对应数据库的文本大对象类型比如oracle中是clob。但是在postgresql中会建成text这个类型并不是大对象只是长度比较长的字符串类型而已它不需要进行对象的初始化而框架就会认为这是大对象要插空时应该插入空对象插入null就报错了。 于是我们把所有的Lob全部去掉并手动指定这些字段类型为text如果不指定字段类型会变成varchar(255) 长度不够,涉及到6个文件 .\halo\src\main\java\run\halo\app\model\entity\BasePost.java .\halo\src\main\java\run\halo\app\model\entity\Content.java .\halo\src\main\java\run\halo\app\model\entity\ContentPatchLog.java .\src\main\java\run\halo\app\model\entity\Journal.java .\src\main\java\run\halo\app\model\entity\Option.java .\src\main\java\run\halo\app\model\entity\ThemeSetting.java以下为一处修改例子 Column(name original_content ,columnDefinition text)//Lobprivate String originalContent;打包运行–正常 在web页面操作初始化–正常 新建文章并保存发布-正常 查看文章–报错主题文件不存在 由于源码中默认的主题目录链接到github的另一个仓库里去了./src/main/resources/templates/themes/anatole 3e7666fgit clone可能没有把相关文件下载下来所以我们打的包里没有主题文件需要手动复制进去这个只要将原始环境中的templates目录覆盖过来,并在后台启用主题即可 完整方案 一、代码修改部分 引入jdbc驱动去掉flyway的使用把Lob都去掉手动指定text类型 二、启动配置文件部分 server:port: 8090# Response data gzip.compression:enabled: false spring:datasource:driver-class-name: org.postgresql.Driverurl: jdbc:postgresql://127.0.0.1:26050/halo160?stringtypeunspecifiedbatchModeoffusername: halopassword: Halo123jpa:database-platform: org.hibernate.dialect.PostgreSQLDialectproperties:hibernate:temp:use_jdbc_metadata_defaults: falsehalo:# Your admin client path is https://your-domain/{admin-path}admin-path: admin# memory or levelcache: memory 三、数据库部分 创建PG兼容性的库 create database halo160 dbcompatibility PG;\c halo160创建连接用户 create user halo password Halo123 ;四、成品 修改后的代码已上传到我的gitee仓库,欢迎测试和学习和本篇文章内的修改略有不同 https://gitee.com/darkathena/halo/tree/dev-1.6-for-mogdb/ 本文作者 DarkAthena本文链接 https://www.darkathena.top/archives/mogdb-halo160版权声明 本博客所有文章除特别声明外均采用CC BY-NC-SA 3.0 许可协议。转载请注明出处
http://www.yingshimen.cn/news/29799/

相关文章:

  • 建行购物网站百度指数pc版
  • 郑州网站建设服务商wordpress 4.7.2
  • 用织梦做外文网站怎样开发游戏app软件
  • asp.net.网站开发做招聘网站排名
  • 电子商务网站建设作用青岛网站建设与推广
  • 做电商需要哪些网站有哪些合肥网站建设q.479185700惠
  • 深圳营销型网站设计wordpress 做图片站
  • 怎么用云主机做网站酒店微信网站建设
  • 注册网站怎么做网站学网站建设的工资高吗
  • 电商网站卷烟订货流程网站怎么做图片动态图
  • cn免费域名注册网站我的网站刚换了一个模板收录很多就是没排名
  • 企业oa网站建设方案关于网站建设的软文
  • 网站做直播功能需要注册吗微信营销推广软件
  • 国家工程建设质量奖网站有什么网站可以做深圳初二的试卷练习
  • 微信知彼网络网站建设阳江网站网站建设
  • 做网站怎么与客户谈判简述网站设计基本流程
  • 北京网站排名seo国外做各种趣味实验的网站
  • 记事本做网站背景色怎么弄正规推广赚佣金的平台
  • 网站开发预算报表重庆装修网
  • 如何做网站地图txt济南天桥区网站建设
  • 网站域名年费多少钱做dj网站用什么建站系统比较好
  • 经营网站备案查询温州seo教程
  • 中文网站模板搜索优化引擎
  • 网站上传文章网站建设网站制作网站设计
  • 网站推广工具有哪些接广告推广
  • 安徽水利建设市场信用信息平台网站网站费计入什么科目
  • 外贸网站平台是不是很难做react用于做PC网站
  • 做图片网站侵权吗程序员做的简单的网站
  • 可以做pos机的网站知行网站建设
  • 建设网站平台需要什么硬件配置php网站开发软件