2010-10-22 43 views
3

如果我有叫mydata.yml的Propel ORM数据灯具

User: 
    anonymous: 
    nickname: anonymous 
    first_name: Anonymous 

    david: 
    nickname: david 
    first_name: David 

一个YML数据fixture文件我该如何告诉推动在哪里可以找到这个文件。我需要的任何指令添加到build.properties

?如何运行它的数据插入到数据库(我已经做了propel-gen insert-sql,我需要重复或东西)

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

回答

2

从Fixtures载入数据是Symfony为Propel添加的一个特性,它不是“核心”Propel框架的一部分。因此,如果您不使用Symfony,则无法在没有其他代码的情况下加载数据。有可能将the sfPropelData class中的代码与实际加载的代码隔离开并将其去掉,以便您可以在另一个框架中使用它。如果你在这方面取得成功,请将你的代码发布给公众,其他人可能也会喜欢它!

3

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

sqldb.map的内容可能是这样的:由propel.sql.dirbuild.properties文件中指定的目录中创建

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

sqldb.map文件。

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