【问题标题】:What is exactly Ecto Migration in Elixir?Elixir 中的 Ecto 迁移到底是什么?
【发布时间】:2017-04-11 16:06:43
【问题描述】:

我来自 NodeJs/PHP 背景。

你有一个数据库(我使用 MYSQL)和一个库来在数据库中进行 sql 查询。

什么是Ecto?是不是像 Elixr 中数据库的库包装器?

什么是迁移? 我已经在 MySQL 中创建了数据库,为什么还要创建 Ecto Migrations?

假设我只创建了一个 mysql 数据库,那么从 Elixr 使用 mysql 数据库的推荐方法是什么? (并配置了 elixr phoenix 和一切)

例如。数据库example

表格 thread

id | title

表格 comment

id | text | thread_id

【问题讨论】:

  • 如果数据库中已经存在具有正确列的表,则不必创建迁移。
  • 等待,但我必须创建模型/模式 @Dogbert

标签: mysql elixir phoenix-framework ecto


【解决方案1】:

简而言之,Ecto 是一个通用数据管理库和数据库包装器。

数据管理部分(主要通过Ecto.Changeset 模块实现)独立于数据库 - 它提供了用于处理来自外部系统的需要验证并转换为适当类型的数据的工具。

数据库包装器部分提供了超出编写原始 SQL 的附加功能 - SQL 注入保护、查询组合和更丰富的类型系统。

迁移的主要目标是对数据库进行版本控制 - 即您有 3 个开发人员,他们都想对数据库进行更改。迁移可以自动执行此操作,还可以更轻松地保证每个开发人员的生产数据库和数据库相同 - 手动完成这一切非常困难且容易出错。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-25
    • 2017-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-27
    相关资源
    最近更新 更多