我在使用Yesod的网站上工作我正常运行,但我似乎无法可靠地填充我的数据库。我有第二个haskell程序填充数据库,我已将它添加到我的cabal文件中,如下所示:
executable program
if flag(library-only)
Buildable: False
main-is: ../main.hs
hs-source-dirs: dist
build-depends: base
, myproject
, yesod-default
executable init
if flag(library-only)
Buildable: False
main-is: init.hs
hs-source-dirs: Init
build-depends: base
, directory
, persistent
, persistent-sqlite
, text
, myproject
, yesod-default
问题是,当我运行'cabal build'时,当init.hs发生变化时,它不会重建init。我该怎么做才能实现这一目标?
这是一个示例终端会话(在编辑init.hs之后):
$ cabal build
Building myproject-0.0.0...
Preprocessing library myproject-0.0.0...
Registering myproject-0.0.0...
$ rm -rf dist/build/myproject/init
$ cabal build
Building myproject-0.0.0...
Preprocessing library myproject-0.0.0...
Registering myproject-0.0.0...
谢谢。
答案 0 :(得分:5)
您可以通过将它们作为参数传递给cabal build
和cabal run
来管理多个可执行文件。例如,cabal build init
。如果没有给出目标名称,则第一个可执行文件是默认值。