Keter上的Yesod应用程序,具有对数据库的只读访问权限

时间:2018-11-12 08:03:39

标签: haskell yesod keter

我有几个使用keter和PostgreSQL部署的yesod应用程序。我最喜欢它们的是部署时发生的自动数据库迁移。

但是,现在我面临一个小问题:我在另一个虚拟机上设置了数据库副本;第二个DB是从属的,因此是只读的。当我启动部署了应用程序的keter时,这些应用程序无法启动,因为它们无法成功执行迁移脚本。只有虚拟更改,表没有实际更改,但应用程序无法以 "cannot execute ALTER TABLE in a read-only transaction"

是否可以在启动时通过keter或应用程序配置或ENV变量临时禁用迁移脚本?

1 个答案:

答案 0 :(得分:0)

  

是否可以在启动时通过keter或应用程序配置或ENV变量临时禁用迁移脚本?

是的,有可能。我认为最简单的方法是使用环境变量。 如果您使用Yesod的脚手架站点,则必须在运行迁移的makeFoundation函数中进行更改。请注意,使用名为runMigration的函数来执行该功能。您需要添加适当的条件才能使其正常工作。