【问题标题】:Load data from file in Play framework YAML从 Play 框架 YAML 中的文件加载数据
【发布时间】:2012-07-05 03:44:48
【问题描述】:

当 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';

谢谢

【问题讨论】:

  • 您使用的是什么数据库服务器? MySQL, H2 ?

标签: playframework yaml load-data-infile


【解决方案1】:

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

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

【讨论】:

  • 感谢您的回答,我最终找到了解决此问题的替代方法
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2021-09-02
    • 1970-01-01
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 2017-06-01
    • 1970-01-01
    相关资源
    最近更新 更多