Elixir 中的 Ecto Migration 究竟是什么?
What is exactly Ecto Migration in Elixir?
我来自 NodeJs/PHP 背景。
你有一个数据库(我使用 MYSQL )和一个库来在数据库中进行 sql 查询。
什么是 Ecto?它像 Elixr 中数据库的库包装器吗?
什么是迁移?
我已经在 MySQL 中创建了数据库,为什么还要创建 Ecto Migrations?
如果我只创建了一个 mysql 数据库,推荐使用 Elixr 中的 mysql 数据库的方法是什么? (并配置了 elixr phoenix 和一切)
例如。数据库 example
Table
thread
id
| title
Table
comment
id
| text
| thread_id
简而言之,Ecto 是一个通用的数据管理库和数据库包装器。
数据管理部分(主要通过 Ecto.Changeset
模块实现)独立于数据库 - 它提供了处理来自外部系统的数据的工具,这些数据需要验证并转换为适当的类型。
数据库包装器部分提供了比原始编写更多的东西 SQL - SQL 注入保护、查询组合和更丰富的类型系统。
迁移的主要目标是对数据库进行版本控制 - 即您有 3 个开发人员,他们都想对数据库进行更改。迁移允许自动化,它们还可以更容易地保证生产数据库和每个开发人员的数据库是相同的——手工完成这一切非常困难且容易出错。
我来自 NodeJs/PHP 背景。
你有一个数据库(我使用 MYSQL )和一个库来在数据库中进行 sql 查询。
什么是 Ecto?它像 Elixr 中数据库的库包装器吗?
什么是迁移? 我已经在 MySQL 中创建了数据库,为什么还要创建 Ecto Migrations?
如果我只创建了一个 mysql 数据库,推荐使用 Elixr 中的 mysql 数据库的方法是什么? (并配置了 elixr phoenix 和一切)
例如。数据库 example
Table
thread
id
| title
Table
comment
id
| text
| thread_id
简而言之,Ecto 是一个通用的数据管理库和数据库包装器。
数据管理部分(主要通过 Ecto.Changeset
模块实现)独立于数据库 - 它提供了处理来自外部系统的数据的工具,这些数据需要验证并转换为适当的类型。
数据库包装器部分提供了比原始编写更多的东西 SQL - SQL 注入保护、查询组合和更丰富的类型系统。
迁移的主要目标是对数据库进行版本控制 - 即您有 3 个开发人员,他们都想对数据库进行更改。迁移允许自动化,它们还可以更容易地保证生产数据库和每个开发人员的数据库是相同的——手工完成这一切非常困难且容易出错。