我有Grails2.0,它带有H2数据库和dbconsole。
我想从dbconsole获取数据库备份:
数据库url:"jdbc:mysql://localhost/opal“
用户名: root
密码:(无)
在dbconsole的tools部分中,有一个备份数据库的选项。
它会问3件事
目标文件名:~/backup.zip(默认)
源目录:
源数据库名称: opal (我的数据库名称)
当我按run时,它会给出错误,
No database files have been found in directory E:/Workspace/opal for the database opal 有谁能建议如何备份数据库吗?
发布于 2012-10-09 22:10:46
我从来没有让它工作过。如果您只是想要一个用于开发的数据快照(在启动时加载),我发现使用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'发布于 2013-06-24 15:46:39
我认为这个site会很有帮助。或者,在转储数据库并恢复数据库时,尝试以下代码片段:
mysqldump -u root -p my_database Table1 Table2 > /home/user/tablesDump.sql;并将表恢复回:
mysql -u root -p my_database_2
mysql> source /home/user/tablesDump.sql;这两个表都是在my_database_2中创建的。
https://stackoverflow.com/questions/12800464
复制相似问题