0

当 play 将进化应用于数据库时,我想将存储在文件中的一些数据加载到我的 mysql 数据库中。
基本上当play运行1.sql来升级数据库时,我想运行“LOAD DATA INFILE”或等效的。

yaml 中是否存在 LOAD DATA INFILE 的等价物?

如果是,我怎么能实现类似的东西
LOAD DATA INFILE "/path/to/myfile" INTO TABLE myTable FIELDS TERMINATED BY '|' LINES TERMINATED BY '\n';

谢谢

4

2 回答 2

0

LOAD DATA INFILEMySQL 特定的。您必须使用此 MySQL 命令使用的语法。

AFAIK,您可以使用此 MySQL 语句从 Evolution 的 SQL 文件中加载数据。棘手的部分是正确定位您的数据文件,因为当您使用该play dist命令时,进化文件存储在您的应用程序 jar 中(即在您的类路径中)。因此,当您要在生产中部署时必须小心,并将数据文件添加到生成的 zip 中。

于 2012-07-05T07:24:53.203 回答
0

我找到了解决这个问题的方法,

在 global.java 中,当应用程序重新启动时,我检查表是否为空,
if(Ebean.find(MyClass.class).findRowCount() == 0)
然后使用 FileInputStream 以经典方式读取文件,使用 java string split() 函数拆分行并使用 save 更新 mysql 表() 我的模型的功能

于 2012-07-05T10:04:49.087 回答