2016-02-19 45 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

回答