【发布时间】:2019-06-29 20:45:28
【问题描述】:
我有一个项目,我需要在本地环境中使用 SQLite,但在普通服务器上使用 Postgres。
不幸的是,目前还没有适用于 Ecto 3 的 SQLite 适配器,迫使我将 Ecto 和一些相关包保留在2.x,这导致了一些问题,例如:Ecto 2.0 SQL Sandbox Error on tests
我想知道是否可以指定两个不同版本的 Ecto,从而为环境 :local 和 :prod 指定依赖关系。目前这似乎是不可能的,因为每个项目只有一个锁文件。实现它的唯一方法似乎是在项目目录中存储两个不同的锁定文件?例如https://elixirforum.com/t/only-fetch-deps-compatible-for-a-specific-version-of-elixir/16213
【问题讨论】:
-
好吧,我想对于我的特定问题,更好的解决方案是为应用程序的 SQLite 版本使用不同的分支。原来的问题仍然存在。
-
除了显而易见的解决方案,即在您的本地环境中使用 Postgres 而没有适用于 Ecto 3 的 SQLite 适配器之外,如果您不想创建另一个,我认为保留两个不同的锁文件是最干净的解决方案分支。
标签: package elixir package-management hex-pm