Skip to content

zdzwsz/db-orm

Repository files navigation

本微应用是使用nodejs技术,融合其他组件,开发一个微数据库服务工具,直接将数据库映射成微服务。
1、webservice规则:
/meta/服务名/add,/meta/服务名/get,/meta/服务名/update,/meta/服务名/delete
/data/服务名/add,/data/服务名/get,/data/服务名/update,/data/服务名/delete

服务返回结果:
执行正确结果:{"code":'000','message':'信息描述',......}
执行返回结果:{"code":'000','data':'{ json 格式 }',......}
执行错误结果:{"code":'001','message':'信息描述',......} code值不等于000,就是错误

2、启动服务,node ./server/index.js

3、配置文件:server/config.js
数据 json 配置设置为自己文件夹的目录。

4、元数据json 格式:
{
"tableName":"test_sys_users",
"primary":"id",
"fields":[
{ "name": "id", "type": "int" },
{ "name": "name", "type": "string" ,"length" : 12,"notNullable":true},
{ "name": "age", "type": "int" ,"default": 10},
{ "name": "birthday","type":"dateTime"},
{ "name": "salary","type":"float","length":[10,2]},
{ "name": "crete_data","type":"timestamp"},
{ "name": "assets","type":"decimal","length":[8]},
{ "name": "type","type":"string","length":2,"default": "0"}
{ "name": "resume","type:"table","relation":{
"tableName":"test_resume",
"primary::"id",
"fields":[
{"name":"id","type":"int"},
{"name":"startTime","type":"dateTime"},
{"name":"stopTime","type":"dateTime"},
{"name":"detail","type":"string"}
]
}}
]
}

5、元数据修改 格式:
{
"r_primary":"name",
"add":[
{ "name":"pic", "type":"string","length":255}
],
"update":{
"age":{"name": "ages", "type": "string"}
},
"delete":[
"crete_data"
]
}
目前不支持修改表的名称


todo:
1、数据更改热启动,(over)
2、多种数据类型保存测试与完善(over)
--a、自增量, int 转 增量
--b、日期格式处理
--c、string 转 int ,string 转 date(不做了,由业务判断)

3、子从表增删改查,meta和data。(over)
4、启动进行表与json同步(暂时不做了)
一、增量模式
如果表不存在,则新增表。如果表存在,如果表是空表,进行删除再新增,如果不是空表,则检查列,如果列不存在,则增加列,如果存在,只是更改长度(短改长)。(符合已经在运行的系统升级)
二、全量模式
如果表不存在,则新增表,否则,删除表再新增表。最后将策略改为增量模式。(符合新系统)
5、多级权限,改meta需要二次验证。
开发完成,即发布v0.1版本。

Releases

No releases published

Packages

No packages published