我正在使用 Yesod 编写我的第一个应用程序,并且我已经将它带到了可以运行的状态,但我想继续向它添加一些小东西。到目前为止,每次我通过交换新包重新部署 keter 时,都会为该应用程序重新创建数据库。如果没有这种影响,我该如何重新部署?我对 postgres 不是很熟悉,所以解决方法也很好。
编辑:我还用 SQLite 搭建了它,如果这有什么不同的话。我一直在寻找,仍然无法弄清楚这一点。
我正在使用 Yesod 编写我的第一个应用程序,并且我已经将它带到了可以运行的状态,但我想继续向它添加一些小东西。到目前为止,每次我通过交换新包重新部署 keter 时,都会为该应用程序重新创建数据库。如果没有这种影响,我该如何重新部署?我对 postgres 不是很熟悉,所以解决方法也很好。
编辑:我还用 SQLite 搭建了它,如果这有什么不同的话。我一直在寻找,仍然无法弄清楚这一点。
与公认的答案相反,您实际上可以这样做。在 sqlite.yml 配置中,您只需将路径设置为它可以访问的位置。
我当前的设置是,我已经创建了一个文件夹,/opt/keter/database
然后我的生产配置是,
Production:
database: /opt/keter/database/HsCMS_production.sqlite3
poolsize: 100
<<: *defaults
这将使数据库在部署中保持持久。您应该知道,当您更改数据库时,它仍然需要进行迁移。
我最终想出的答案是,如果它是用 Sql-lite 搭建的,我无法让它保留数据。