三周学会小程序第八讲:Heroku 集成免费的 MySQL

2年前 (2022) 程序员胖胖胖虎阿
193 0 0

上一讲我们说到使用 H2 存储数据,那么如果我们部署到 Heroku 是否也有免费的数据库用?答案是对的。
小编之前编写的两个工具现在依然用的是
Heroku 的免费服务和数据库。极客冲顶 和 Commenthub。下面让我们把上一讲的数据脚本自动执行到 Heroku,体验一下 Migration 的便捷性。

配置 Heroku

因为 Heroku 是 Paas 服务,它集成了很多可以插拔的组件,所以 MySQL 也是这样一个组件,我们需要添加一个 MySQL 然后才能使用。

三周学会小程序第八讲:Heroku 集成免费的 MySQL

首先我们看一下费用,Heroku 提供的免费的 MySQL,支持 5M 的存储,10个 Connections,很小,但是对于我们测试已经足够了。

我们还是先通过浏览器进入 Heroku 的控制面板

三周学会小程序第八讲:Heroku 集成免费的 MySQL
点击 Configure Add-ons,这个时候会提示如下内容,意思是在添加组件之前,你需要关联一个信用卡,不然不能添加。当然这个关联并不会扣费。直接点击图片上面的 Verify Now即可添加信用卡。

三周学会小程序第八讲:Heroku 集成免费的 MySQL

接下来继续点击刚才的添加按钮,进入如下页面。

三周学会小程序第八讲:Heroku 集成免费的 MySQL

在搜索框里面输入 MySQL,选择 ClearDB。弹出输入框选择确定即可,这样就为 Heroku 添加了 MySQL。

三周学会小程序第八讲:Heroku 集成免费的 MySQL

接下来我们需要对程序改造。

修改程序

就我们所知,application.yml 区分为 production 和 dev,我们这个时候直接修改 application-product.yml 就可以了。添加如下内容:

  
  
  
  1. db:

  2.  url: ${JDBC_DATABASE_URL}&useUnicode=true&characterEncoding=UTF-8

  3.  username: ${JDBC_DATABASE_USERNAME}

  4.  password: ${JDBC_DATABASE_PASSWORD}

  5.  driver: com.mysql.jdbc.Driver

当 Heroku 添加 MySQL 成功以后,会自动创建上面这些环境变量,所以我们直接使用即可。
另外延迟没有支持 Heroku 的原因是 Flyway 和 Druid 支持不是特别好,在小编反复调试下,把 Druid 换成了 C3P0,所以你现在下载最新的代码,部署到 Heroku 上面是工作的。具体修改如下,第一步添加 pom.xml

  
  
  
  1. <!--C3P0-->

  2. <dependency>

  3.    <groupId>c3p0</groupId>

  4.    <artifactId>c3p0</artifactId>

  5.    <version>0.9.1.2</version>

  6. </dependency>

接下来直接修改 applicationContext.xml 就可以了,其他不需要修改。

  
  
  
  1. <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"

  2.      destroy-method="close">

  3.    <property name="driverClass" value="${db.driver}"/>

  4.    <property name="jdbcUrl" value="${db.url}"/>

  5.    <property name="user" value="${db.username}"/>

  6.    <property name="password" value="${db.password}"/>

  7.    <property name="maxPoolSize" value="5"/>

  8.    <property name="minPoolSize" value="1"/>

  9.    <property name="maxStatements" value="20"/>

  10. </bean>

那你也来试试吧。

源码

服务端源码地址,Tag V8
https://github.com/codedrinker/jiuask-server

本文分享自微信公众号 - Java后端(web_resource)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

相关文章

暂无评论

暂无评论...