文章目录
1.数据库迁移
我目前使用的是5.6.5版本瀚高数据库
关于瀚高数据库的数据迁移,我目前只找到了两个方案,
1.只能用专门的迁移工具,csdn中50c币的那个,该工具可以实现其他数据库(这个其他不包含瀚高自己)迁移到瀚高数据库
2.瀚高数据库自带的迁移工具,从oracle迁移到瀚高(可能有其他的,我可能没发现?)
2022/4/24原帖更新插入新方法
经过一番搜索,发现了新的方式,即为数据库备份 数据库恢复
2.数据库设置主键自增
数据库迁移之后,需要加主键自增,因为瀚高数据库不像mysql数据库的navcat一样点一下就自增了
(68条消息) postgresql常用函数>序列函数nextval():设置主键自动增长_野生汪嘤嘤嘤的博客-CSDN博客_default nextval
CREATE SEQUENCE 表名_主键_seq
START WITH 1 --1为起始id
INCREMENT BY 1 --每次自增
NO MINVALUE
NO MAXVALUE
CACHE 1;
alter table 表名 alter column id set default nextval('表名_主键_seq');
//数据库设置修改主键起始值:
alter sequence if exists 表名_主键_seq restart with 3 cache 1;
2.1 数据库字段问题
有些超级大的数字必须在sql语句中转为bigint
(69条消息) sum(CHARACTER VARYING) 不是唯一的_麻花2013的博客-CSDN博客
非mysql数据库的一些问题
sum(cast(字段名 as int))
2.2 存在即更新
某个sql语法,在瀚高中的修改
1、如果数据库存在一条记录,则将新插入的值,作为更新
2、如果没有这样一条记录,则新增。
(70条消息) PostgreSQL数据库如果不存在则插入,存在则更新_旷野孤星的博客-CSDN博客_pgsql 存在则更新
INSERT INTO test_postgre(id,name,InputTime,age)
VALUES('1','postgre','2018-01-10 22:00:00',24)
ON conflict(id)
DO UPDATE SET name = 'postgreOk', InputTime ='2018-02-22 12:00:00'
2.3 清空数据表
在 mysql中,只需要执行:
TRUNCATE table_name;
即可,数据会情况,而且自增id也会变回0;
但在 postgresql 则稍有不同,因为 postgresql 的自增id是通过序列 sequence来完成的,
所以情况数据后,还需要还原序列 sequence:
TRUNCATE bigtable, fattable RESTART IDENTITY;
2.4 瀚高数据库查询过程中显示转换
一个莫名其妙的错误
SELECT person.name, holidays.num_weeks FROM person, holidays
WHERE person.current_mood = holidays.happiness;
ERROR:operator does not exist: mood = happiness
如果真的需要那么做,可以要么自定义运算符,要么为查询添加显式转换:
SELECT person.name,holidays.num_weeks FROM person,holidays
WHERE person.current_mood::text=holidays.happiness::text;
2.5 mybatis插入一条数据返回自增的主键值
mybatis插入一条数据返回自增的主键值_smile-yan的博客-CSDN博客_mybatisplus插入一条数据返回主键
<insert id="addTaskLogs" parameterType="com.taiyu.dms.entity.TaskLog" useGeneratedKeys="true" keyProperty="id" keyColumn="id">
insert into taskLog(taskName,taskType,taskCycle,startTime,mxTable) values(#{taskname},#{tasktype},#{taskcycle},#{starttime},#{mxtable})
</insert>
七种MYSQL插入数据后返回自增主键ID的方法_童话ing的博客-CSDN博客_mysql 插入返回主键.
2.6 瀚高数据库服务无法启动
这个解决方案好像是有一个人的综合方案
瀚高数据库win版启动客户端连接提示拒绝连接,是否在主机xxx运行且准备接受在端口5866_星月情缘02的博客-CSDN博客_瀚高数据库启动不了
3. 部署
我们对于部署的操作是 打war包 放在tomcat的webapps下
前端是vue项目 也放在webapps下
vue项目中需要写一个config.js (里边只有这一句话)
window_global_config = {
baseURL:'http://后端ip地址:后端端口号/后端项目名'
}
ip地址为后端服务器地址/后端本机地址
端口号(此处对应的是项目的端口号–在项目的application.properties中配置的端口号)
后端项目名为你放在webapp下的war包名(这个名是在resources下的配置文件中定义的)
放完之后
在bin目录中 启动startup.bat
4. tomcat出问题
tomcat路径下 logs文件夹 找出时间最近的日志,拉到最下查看问题
常见错误
password authentication failed for user "highgo" --连接数据库的密码错误
relation "表" does not exist
这个错误可以由多种因素引起
1.权限什么的————查阅后……我没看懂,
2.瀚高数据库的库名问题————我把我的库名改成highgo,解决了
出现过c3p0错误
原因是我写的某个定时器引用了低版本的c3p0 但我为了连接瀚高使用了高版本的c3p0
最后解决方案是在定时器中的依赖中排除低版本的
不过我觉得关于这个问题的找出的方式很值得学习
发现错误的方式是,
1.tomcat报错看tomcat logs ,
2.maven清空重新导包,发现下载了两个包,
3.拆war包,war包中有俩c3p0,
4.尝试在项目中找低版本的c3p0的来源(找不到)
5.看依赖树,发现定时器的某个依赖引用了低版本c3p0依赖,
6.尝试只用低版本的c3p0能否运行(并不能),
7.使用语法排除低版本,只用高版本(√)
(这个错误找大佬查,查了1个多小时,一直到自己手动把war包拆开,挨个看依赖这才发现问题)-----这个错误找的是最累的,每次尝试都要重新清缓存,打包,部署,启动,再测试
5. 2022/4/24
5.1 数据库备份
在C:\highgo\database\5.6.5\bin下进入cmd
-h localhost 本地数据库地址
-p 5866 端口号
-U highgo 用户(瀚高数据库用户,密码)
-d highgo 瀚高中的数据库名字
-n baozhen 瀚高中的数据库的模式名
testdb20220424.hgdmp 数据库的备份的储存的sql类型的文件名
pg_dump -h localhost -p 5866 -U highgo -d highgo -n baozhen -v -Fc > testdb20220424.hgdmp
运行后的数据储存在bin目录下
5.2 数据库恢复
将文件拖进服务器或者部署的机器中
pg_restore -h 127.0.0.1 -p 5866 -U highgo -d highgo -v testdb20220424.hgdmp
注意:该方法未测试,不过感觉没太大问题