2010-10-22 39 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。