我有一个使用默认设置构建的现有项目。现在我看到我真的不需要Ecto。我只想从代码中删除所有与DB相关的事件。
有人可以指导我完成整个过程吗?
我已从mix.exs中删除了所有提及的Ecto,但我认为这还不够
更新:
我在lib / api_test / repo.ex文件中找到了ecto。如果我删除该行,则会出现以下错误
=INFO REPORT==== 21-Jul-2016::12:43:30 ===
application: logger
exited: stopped
type: temporary
** (Mix) Could not start application api_test: ApiTest.start(:normal, []) returned an error: shutdown: failed to start child: ApiTest.Repo
** (EXIT) an exception was raised:
** (UndefinedFunctionError) function ApiTest.Repo.start_link/0 is undefined or private
(api_loc) ApiTest.Repo.start_link()
(stdlib) supervisor.erl:365: :supervisor.do_start_child/2
(stdlib) supervisor.erl:348: :supervisor.start_children/3
(stdlib) supervisor.erl:314: :supervisor.init_children/2
(stdlib) gen_server.erl:328: :gen_server.init_it/6
(stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
答案 0 :(得分:10)
我想我有一个很好的解决方案。我创建了两个新的Phoenix项目,一个使用Ecto,一个使用--no-ecto
标记(mix phoenix.new --no-ecto my_app
)。然后我用Ecto初始化了一个Git仓库,添加并提交了所有内容,然后删除了所有文件,并用Ecto中的项目替换了它们。
结果是this commit on GitHub。我认为你会找到一个很好的起点来改变什么。
答案 1 :(得分:1)
现在可以使用mix ecto.drop -r MyApp.Repo
(其中MyApp
是应用程序的名称)完成此操作。请参见ecto.drop的指南。
此外,可以通过删除MyApp.Repo
函数下的lib/my_app/application.ex
和start
中的引用来手动完成此操作。
答案 2 :(得分:0)