Database.Persist的SQL索引(Yesod Web框架)

时间:2012-08-08 09:16:05

标签: haskell yesod

Database.Persist似乎与索引无关。这没关系,我可以创建自己的索引,但通用SQL迁移似乎在添加/删除字段时创建和删除表。这具有删除索引的效果。

是否有建议的方法来确保它们能够在数据库迁移后继续存在?

1 个答案:

答案 0 :(得分:7)

只有SQLite3后端应该删除表,PostgreSQL和MySQL都提供了足够强大的ALTER TABLE命令来避免这种情况。因此,只有SQLite3才能丢失索引。如果你在生产中使用SQLite3(不是真的推荐),你有两个选择:

  1. 禁用自动迁移并自行处理架构。
  2. 运行迁移后添加一些代码以替换任何缺失的索引。