如果我有一个名为mydata.yml
User:
anonymous:
nickname: anonymous
first_name: Anonymous
david:
nickname: david
first_name: David
如何告诉推动找到此文件的位置。我是否需要向build.properties
如何运行它以将数据插入数据库(我已经完成了propel-gen insert-sql
,我是否需要重复它或者其他东西)
注意:我在php项目中使用Propel而不是Symfony项目,因此无法访问Symfony可能添加的任何设置(如果有的话)。
答案 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中隔离和删除代码,因此您可以在另一个框架中使用它。如果你成功了,请向公众发布你的代码,其他人也可能喜欢它!