1.首先工程中一般是这样设置这两个参数的
spring.jpa.hibernate.ddl-auto=update
spring.datasource.initialize=false
分别表示,更新表中新增的字段 或 创建新增的表,不执行data.sql中的初始化语句。
2.要清库的话…还是先备份一下重要的数据吧
plsql中自带导出sql文件的功能,就用这个吧
3.然后将这两个参数修改为:
spring.jpa.hibernate.ddl-auto=create
spring.datasource.initialize=true
这样就会先drop所有的表,然后创建,然后执行data.sql中的初始化语句
这样清库的时候view,procedure,db link,sequence等其他schema对象 不会被drop(笔者当初以为会全部删除掉,备份了一大堆东西233…)
4.这边笔者库中用了大量存储过程,所以有些数据恢复需要重新调用一下
执行
call procedure_name()
5.导入sql恢复其他数据,直接用plsql 中的command命令窗口
这样:
这样: @路径
然后等执行完记得commit一下
ps: 如果数据量大的话(比如笔者就有60万条数据),可以将sql文件分成几份(如十万一份),然后分开执行(60万执行了1小时不到,还是可以接受的)