我来自NodeJs / PHP背景。
你有一个数据库(我使用MYSQL)和一个库在数据库中进行sql查询。
什么是Ecto?它是否像Elixr中的数据库包装器一样?
什么是迁移? 为什么我已经在MySQL中创建数据库时必须创建Ecto Migrations?
假设我只创建了一个mysql数据库,建议使用Elixr的mysql数据库的方法是什么? (并配置了elixr凤凰和一切)
EG。数据库example
表格
thread
id
| title
表格
comment
id
| text
| thread_id
答案 0 :(得分:3)
为了简短起见,Ecto是一个通用数据管理库和数据库包装器。
数据管理部分(主要通过Ecto.Changeset
模块实现)独立于数据库 - 它提供了处理来自外部系统的数据的工具,这些数据需要经过验证并转换为适当的类型。
数据库包装器部分提供了额外的东西,而不是编写原始SQL - SQL注入保护,查询组合和更丰富的类型系统。
迁移的主要目标是对数据库进行版本控制 - 即您有3个开发人员,他们都希望对数据库进行更改。迁移允许自动执行此操作,它们还使得更容易保证每个开发人员的生产数据库和数据库都是相同的 - 当手动完成时,它非常困难且容易出错。