1

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

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

数据库网址:“jdbc:mysql://localhost/opal”

用户名:root

密码:(无)

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

它会问 3 件事

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

源码目录:

源数据库名称:蛋白石(我的数据库名称)

当我按下运行时,它给出了错误,

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

任何人都可以建议如何进行数据库备份。

4

2 回答 2

0

我认为这个网站会很有帮助。或者,在转储数据库并恢复数据库时,请尝试以下代码段:

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 中创建的。

于 2013-06-24T07:46:38.697 回答
0

我从来没有让它工作。如果您只想要开发数据的快照(启动时加载),我发现使用 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()
    }
}

然后在引导程序中,您可以将其重新加载

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'
于 2012-10-09T14:10:46.360 回答