【问题标题】:Remove Ecto from existing Phoenix project从现有 Phoenix 项目中移除 Ecto
【发布时间】:2016-11-24 15:04:23
【问题描述】:

我有一个使用默认设置构建的现有项目。现在我发现我真的不需要 Ecto 来做任何事情。我只想从代码中删除所有与数据库相关的事件。

有人可以指导我完成整个过程吗?

我已经从 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

【问题讨论】:

  • 我将开始从 deps 中删除 phoenix_ecto 并查看编译器开始抱怨的地方。从 mix.exs 中删除 ecto 后编译器在哪里没有抱怨?
  • 您可以使用--no-ecto 标志创建一个新的phoenix 项目,然后将其与您现有的比较。
  • 你还有没有在某处提到过worker(ApiTest.Repo, args),这样的行?看看你的项目中是否仍然提到了 Repo。

标签: elixir phoenix-framework ecto


【解决方案1】:

我想我有一个很好的解决方案给你。我创建了两个新的 Phoenix 项目,一个使用 Ecto,一个使用 --no-ecto 标志 (mix phoenix.new --no-ecto my_app)。然后我在使用 Ecto 的项目中初始化了一个 Git 存储库,添加并提交了所有内容,然后删除了所有文件并将它们替换为项目中没有 Ecto 的文件。

结果是this commit on GitHub。我认为你可以找到一个很好的起点来改变什么。

【讨论】:

  • 您的意思是...用没有 Ecto的那个替换它们吗?
  • 这对我帮助很大。只需按照提交并删除所有标记为红色并像魔术一样工作的东西
【解决方案2】:

现在可以使用mix ecto.drop -r MyApp.Repo 完成此操作(其中MyApp 是应用程序的名称)。请参阅ecto.drop 的指南。

此外,这可以通过删除MyApp.Repolib/my_app/application.exstart 函数下的引用来手动完成。

【讨论】:

    【解决方案3】:

    搞定了。

    基本上遵循 Phoenix 的文档,包括 https://hexdocs.pm/phoenix/1.3.0-rc.2/ecto_models.html 中提到的 Ecto

    只是做了与文档中提到的相反的事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多