gpt4 book ai didi

mysql - Grails H2 数据库 DbConsole - 数据库备份

转载 作者:行者123 更新时间:2023-11-30 23:26:57 25 4
gpt4 key购买 nike

我有 grails 2.0,它带有 H2 数据库和 dbconsole。

我想从 dbconsole 获取数据库备份:

数据库 url : "jdbc:mysql://localhost/opal"

用户名:root

密码:(无)

在 dbconsole 的工具部分有一个备份数据库的选项。

它会问3件事

目标文件名:~/backup.zip(默认)

源码目录:

源数据库名称:opal(我的数据库名称)

当我按下运行时,出现错误,

   No database files have been found in directory E:/Workspace/opal for the database opal 

谁能建议如何进行数据库备份。

最佳答案

我从来没有让它工作过。如果您只想要用于开发的数据快照(启动时加载),我发现使用 DBUnit 导出/导入数据对我来说效果很好。我写了一个脚本来导出我从控制台调用的脚本:

    class DataExport {

def ctx = SCH.servletContext.getAttribute(GA.APPLICATION_CONTEXT)

def exportData() {
println "-->export"
def ds = ctx.dataSourceUnproxied
println ds.dump()

Connection jdbcConnection = ctx.dataSourceUnproxied.getConnection()
IDatabaseConnection connection = new DatabaseConnection(jdbcConnection);
println connection.dump()
ITableFilter filter = new DatabaseSequenceFilter(connection);
IDataSet dataset = new FilteredDataSet(filter, connection.createDataSet());
FlatXmlDataSet.write(dataset, new File("full.xml").newWriter());
connection.close()
}
}

然后在 Bootstrap 中你可以加载它

Connection jdbcConnection
FlatXmlDataSet dataSet = new FlatXmlDataSetBuilder().build(new ClassPathResource('resources/data/full.xml').inputStream)

jdbcConnection = ctx.dataSource.getConnection()
IDatabaseConnection connection = new DatabaseConnection(jdbcConnection);
try {
DatabaseOperation.INSERT.execute(connection, dataSet)
} catch(e) {
e.printStackTrace()
throw(e)
} finally {
jdbcConnection.close()
}
log.info 'data loaded'

关于mysql - Grails H2 数据库 DbConsole - 数据库备份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12800464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com