5

開発と本番の間の一般的なパターンは、ゼロ セットアップであるため、開発 Web サイトは sqlite を使用しますが、本番環境では PostgresSQL または MySQL を使用します。ただし、Yesod によって生成されたデフォルトの Settings.hs スキャフォールディング ファイルでは、永続的なバックエンドが 1 つしか指定されていません。開発構成で 1 つの永続的なバックエンドを使用し、運用構成で別の永続的なバックエンドを使用する方法はありますか? さらに、これらには個別のデータベース設定 YAML ファイルが必要です。これにより、単純なファイル名を sqlite 用に構成できますが、実稼働データベースの資格情報が VCS リポジトリにヒットすることはありません。

4

1 に答える 1

1

データベース エンジン間に微妙な違いがあり、本番環境まで現れない可能性があるため、私は一般的にこの方法は好きではありません。(これは、中間にステージング サーバーを配置することで軽減できます。)

とにかく、条件付きコンパイルを介してこれを行うことができますが、スキャフォールディングされたサイトはすぐに使用できるようには設計されていません. 特定のバックエンドを参照するすべての場所を探し、DEVELOPMENT CPP 変数で条件付きにします。

于 2012-10-30T05:35:11.193 に答える