飞道软件工厂

插件式开发

数据服务

1. 什么是数据服务

有数据操作的服务就是数据服务。

2. 数据库

我们使用两个数据库,一个是postgre,我们用它来保存配置数据,一个是mysql,我们用它来存储业务数据库。如果你的系统比较小,只使用一个数据库也是可以的。如果数据库比较大,需要分库的话,也可以配置多个数据库。

注:

  1. 分库时多个数据库之间的表不能进行联合查询。
  2. 分库访问时,原子操作与单库原子操作不一致。
  3. 分库访问的配置文件写法与单库配置文件不一致,请参阅原子操作文档@mmstudio/an000036,@mmstudio/an000037@mmstudio/an000014
  4. 在同一个项目中分库访问和单库访问可以并存.
  5. mysql/mariadb支持数据库集群方式,postgre暂不支持。请根据项目需求合理选择数据库。
  6. postgre数据库支持存储json格式数据和查询,mysql/mariadb不支持
  7. 如果修改了配置文件mm.json,需要重新启动调试(在vscode中快捷键为alt+m d)。
  8. 对于多库访问方式,请不要修改数据库名称(不是地址),否则需要同时修改该项目所有用到的代码。
  9. 注意@mmstudio/an000037不支持$1,$2这样的占位符,请使用?,?.
  10. 还可以使用api的方法实现多数据库兼容

2.1. docker

推荐使用docker创建数据库,以下为docker-compose的配置文件

version: '3.7'

services:
  postgres:
    image: postgres
    container_name: postgres
    volumes:
      - /home/feidao/data/postgre:/var/lib/postgresql/data
    restart: always
    environment:
      POSTGRES_DB: mmstudio
      POSTGRES_USER: mmstudio
      POSTGRES_PASSWORD: Mmstudio123
    ports:
      - 5432:5432

  mariadb:
    image: mariadb
    container_name: mariadb
    restart: always
    volumes:
      - /home/feidao/data/mysql:/var/lib/mysql
    environment:
      MYSQL_DATABASE: mmstudio
      MYSQL_USER: mmstudio
      MYSQL_PASSWORD: Mmstudio123
      MYSQL_ROOT_PASSWORD: Mmstudio123
    ports:
      - 3306:3306

  adminer:
    container_name: adminer
    image: adminer
    restart: always
    ports:
      - 8080:8080

使用docker-compose启动命令为:

sudo docker-compose -f /path/to/images.yaml up

2.2. 数据库操作

数据库操作一般包含增,删,改,查四种操作的各种组合。详见sql操作中的示例

2.3. 调用原子操作完成服务

练习内容