推动ORM数据夹具

时间:2010-10-22 21:23:54

标签: database zend-framework orm symfony1 propel

如果我有一个名为mydata.yml

的yml数据夹具文件
User:
  anonymous:
    nickname: anonymous
    first_name: Anonymous

  david:
    nickname: david
    first_name: David

如何告诉推动找到此文件的位置。我是否需要向build.properties

添加任何说明

如何运行它以将数据插入数据库(我已经完成了propel-gen insert-sql,我是否需要重复它或者其他东西)

注意:我在php项目中使用Propel而不是Symfony项目,因此无法访问Symfony可能添加的任何设置(如果有的话)。

2 个答案:

答案 0 :(得分:3)

您可以在单独的SQL文件中准备插入(例如fixtures.sql),并在处理sqldb.map命令时告诉文件propel-gen insert-sql中的Propel运行它。

sqldb.map的内容可能如下所示:

# Sqlfile -> Database map
schema.sql=yourdatabasename
fixtures.sql=yourdatabasename

sqldb.map文件是在propel.sql.dir文件中的build.properties行指定的目录中创建的。

理论上,你可以在某处运行Symfony沙箱,让它将yml格式的灯具转换为SQL命令,然后在项目中将它与Propel一起使用。

答案 1 :(得分:2)

从fixture中加载数据是Symfony为Propel添加的一项功能,它不是“核心”Propel框架的一部分。因此,如果您不使用Symfony,则无法在没有其他代码的情况下加载数据。有可能从执行实际加载的the sfPropelData class中隔离和删除代码,因此您可以在另一个框架中使用它。如果你成功了,请向公众发布你的代码,其他人也可能喜欢它!