【问题标题】:Propel ORM data fixtures推动 ORM 数据夹具
【发布时间】:2011-04-29 09:37:40
【问题描述】:

如果我有一个名为 mydata.yml 的 yml 数据夹具文件

User:
  anonymous:
    nickname: anonymous
    first_name: Anonymous

  david:
    nickname: david
    first_name: David

我如何告诉 propel 在哪里可以找到这个文件。我是否需要在build.properties 中添加任何说明

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

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

【问题讨论】:

    标签: database zend-framework orm symfony1 propel


    【解决方案1】:

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

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

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

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

    理论上你可以在某个地方运行 Symfony 沙箱,让它将 yml 格式的固定装置转换为 SQL 命令,然后在你的项目中与 Propel 一起使用。

    【讨论】:

      【解决方案2】:

      从固定装置加载数据是 Symfony 添加到 Propel 的一个功能,它不是“核心”Propel 框架的一部分。所以如果不使用 Symfony,没有其他代码就无法加载数据。有可能从the sfPropelData class 中分离并删除执行实际加载的代码,因此您可以在另一个框架中使用它。如果您成功了,请将您的代码公开,其他人可能也会喜欢它!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多