2016-02-19 26 views
0

我有一個已經相當大的數據庫,我需要按照他們寫入THERE(camelCase)的方式訪問表和列。我可以更改以下代碼,以便可以訪問camelCase,或者至少有一種方法來爲每個表和列定義字符串(因爲它在數據庫中)?Haskell Yesod如何控制持久性如何訪問數據庫列

share [mkPersist sqlSettings, mkMigrate "migrateAll"] 
    $(persistFileWith lowerCaseSettings "config/models") 

另一件事:我不想做任何遷移,我只想做CRUD

型號:

MyTest 
    firstName Text 

表:

create table MyTest ( 
    id int unsigned AUTO_INCREMENT, 
    firstName varchar (255) not null, 
    primary key(id) 
) 

另一件事:如果我有一個名爲myColumn2的列,並且我希望它在定義中是myColumn,該怎麼辦?我如何定義在與數據庫交談時使用的自定義名稱?

+1

你可以請你展示一些你的表格定義和'models'文件嗎?我很難找出你在這裏問的問題 – Carsten

+1

正如Carsten所說的,沒有模型文件,很難爲你提供幫助。如果您不想執行遷移,只需刪除'runMigration migrateAll'代碼即可。 – Sibi

+1

有一個很好的[教程](https://www.schoolofhaskell.com/school/advanced-haskell/persistent-in-detail/existing-database)如何做到這一點(重新映射列名) - 你基本上寫'myColumn int sql = myColumn2' – Carsten

回答