mm_dbs 0.0.0-stage → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,3 +1,3 @@
1
- # Temporary Holding Version
2
-
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
1
+ ## 数据库框架(mm_db)
2
+ 用于mysql数据库生成表或生成sql模板,通过设计数据库就可以生成sql模板,或通过db.json配置文件就可以生成mysql数据表
3
+ 可以便捷的实现数据库架构设计和相应业务的API
package/com.json ADDED
@@ -0,0 +1,5 @@
1
+ {
2
+ "name": "DB",
3
+ "title": "数据管理器",
4
+ "state": 1
5
+ }
@@ -0,0 +1,50 @@
1
+ /**
2
+ * mm_dbs 数据库框架示例
3
+ * 演示 dbAdmin() 获取管理器、manager.add() 注册驱动(不连接真实数据库),
4
+ * 以及 Db.model() 字段模型生成与字段 SQL 模板生成。
5
+ * 运行:node example/index.js
6
+ */
7
+ const { Db, Manager, dbAdmin } = require('../index.js');
8
+
9
+ /**
10
+ * 主流程
11
+ */
12
+ function main() {
13
+ // 方式1:通过工厂函数获取数据库管理器实例
14
+ const manager = dbAdmin('example');
15
+ console.log('工厂实例是 Manager 类型:', manager instanceof Manager);
16
+ console.log('admin 缓存同作用域实例:', dbAdmin('example') === manager);
17
+
18
+ // 方式2:注册一个数据库驱动(仅注册配置,不建立连接)
19
+ const drive = manager.add({
20
+ name: 'user',
21
+ title: '用户表',
22
+ table: 'user'
23
+ });
24
+ console.log('驱动是 Db 类型:', drive instanceof Db);
25
+ console.log('驱动表名:', drive.config.table);
26
+
27
+ // 通过字段描述生成字段模型
28
+ const idModel = drive.model({
29
+ name: 'id',
30
+ type: 'int(11)',
31
+ note: '编号:唯一标识',
32
+ pk: true,
33
+ auto: true,
34
+ notnull: true
35
+ });
36
+ const nameModel = drive.model({
37
+ name: 'name',
38
+ type: 'varchar(50)',
39
+ note: '姓名:长度[2,50]',
40
+ notnull: true
41
+ });
42
+ console.log('主键字段模型:', JSON.stringify(idModel, null, 2));
43
+ console.log('姓名字段模型:', JSON.stringify(nameModel, null, 2));
44
+
45
+ // 生成字段 SQL 模板(纯逻辑,无需数据库连接)
46
+ console.log('主键字段 SQL:', drive._generateFieldSql(idModel));
47
+ console.log('姓名字段 SQL:', drive._generateFieldSql(nameModel));
48
+ }
49
+
50
+ main();
package/index.js ADDED
@@ -0,0 +1,24 @@
1
+ const Manager = require('./lib/manager');
2
+ const Admin = require('mm_corejs').Admin;
3
+
4
+ const admin = new Admin();
5
+ admin.setClass(Manager);
6
+
7
+ module.exports = {
8
+ Db: require('./lib/db'),
9
+ Manager,
10
+ admin,
11
+ /**
12
+ * 获取数据库管理器实例
13
+ * @param {String} scope 作用域名称
14
+ * @param {Object} config 配置参数
15
+ * @param {Object} os 操作系统实例
16
+ * @returns {Manager} 数据库管理器实例
17
+ */
18
+ dbAdmin(scope, config = {}, os) {
19
+ if (!scope) {
20
+ scope = 'os';
21
+ }
22
+ return admin.get(scope, config, os);
23
+ }
24
+ };