尚未完结 怕忘了临时记一下 抽时间总结
elixir phoenix 数据迁移 自动生成数据库表 及后台代码
支持类似于 mybatis的逆向生成的功能。
Phoenix的web模块有自己的一套模板,它连前台的页面也一起生成。页面,路由,后台代码(增删改查的函数方法都会生成)。
phx.gen.html生成器
phx.gen.json 生成器
如何实现 下面就看看。
// 注意 一定是在项目的文件夹下来操作 命令,不然会报错 找不到项目
// mix phx.gen.html 命令来完成自动生成
// project 第一个单词是定义的 ‘模块’,承接着上下文,(也就是 project模块存在于上下文中)
// Car controller的名字 它会自动拼接成CarController这样的名字
//cars 表名
mix phx.gen.html Project Car cars car_no:string model:string remark:string
还有就是表的关联:user_id:references:users "references"关键字来连接表
注意:在上面这条语句执行完后,记得修改一下表字段的大小,不改它会设置成默认值。
修改文件:priv/repo/migrations/ 路径下修改相应的文件,size:数值
//将这句话 复制到你的路由文件中
resource "/cars", CarController
// 执行 下面这句 完成创建表操作
mix ecto.migrate
这个是创建表后 修改使用的 修改命令为 mix ecto.migration 文件名
在这个文件中修改 字段或者添加 删除相应的数据库中的字段,不会伤害到整体的结构
mix ecto.gen.migration add_column_to_usecar
add_column_to_usecar文件代码
defmodule Project.Repo.Migrations.AddColumnToUsecar do
use Ecto.Migration
def change do
alert table(:usecar) do
alter :mileage
add :startmileage, :string, size: 100
add :endmileage, :string, size: 100
end
end
end