脚本说明.md 2.8 KB

本系统能通过配置文件(mysql.yml),切换租户模式,通过修改该配置后,业务代码基本不用做任何改动,即可同时满足4种模式。 (注意:业务代码是指,基于本系统新增的业务功能代码,比如,本系统的业务代码:权限服务、消息、文件、订单服务。) 但是在数据源配置(com.github.zuihou.authority.config.datasource包下面的配置)和租户模块(zuihou-tenant-xxx)相关代码做了一些手脚,使得业务代码能完美兼容4种模式。 同时数据库方面需要根据自己的情况做一些调整。

zuihou:
  database:
    multiTenantType:  

有4个选项: 1.NONE:非租户模式 2.COLUMN:字段模式 3.SCHEMA:独立schema模式 4.DATASOURCE:独立数据源模式

4个sql脚本的区别:

  1. zuihou_zipkin.sql: zipkin需要使用的数据库,无论使用那种模式,请独立创建 zuihou_zipkin 数据库,并导入 zuihou_zipkin.sql
  2. zuihou_defaults_yj.sql:默认库,用于存放全局表,如租户信息、定时信息等
  3. zuihou_base_yj_0000.sql:租户库,用于存放内置租户:0000 的业务表。(跟 zuihou_column.sql 的区别在于没有 tenant_code 字段 )
  4. zuihou_column.sql:租户库,用于存放所有租户的业务表。(跟 zuihou_base_yj_0000.sql 的区别在于每个表都有 tenant_code 字段 )

下面介绍4种模式如何创建数据库:(zuihou_zipkin.sql 4种模式都要单独导入 zuihou_zipin 库!)

NONE

  1. 创建数据库: zuihou_none
  2. 向 zuihou_none 库导入 zuihou_defaults_yj.sql
  3. 向 zuihou_none 库导入 zuihou_base_yj_0000.sql

COLUMN

  1. 创建数据库: zuihou_column_all
  2. 向 zuihou_column_all 库导入 zuihou_defaults_yj.sql
  3. 向 zuihou_column_all 库导入 zuihou_column.sql

SCHEMA

  1. 创建数据库: zuihou_defaults_yj 和 zuihou_base_yj_0000
  2. 向 zuihou_defaults_yj 库导入 zuihou_defaults_yj.sql
  3. 向 zuihou_base_yj_0000 库导入 zuihou_base_yj_0000.sql

DATASOURCE

  1. 创建数据库: zuihou_defaults_yj 和 zuihou_base_yj_0000
  2. 向 zuihou_defaults_yj 库导入 zuihou_defaults_yj.sql
  3. 向 zuihou_base_yj_0000 库导入 zuihou_base_yj_0000.sql

题外话:

问: docs/sql/*.sqlzuihou-authority/zuihou-authority-server/sql/*.sql 有什么区别? 答:docs/sql/*.sql 存放的是系统内置的数据库脚本,脚本里面出除了表结构和一些必要数据,还维护了一些丰富的业务数据,主要用于启动项目。

而,zuihou-authority/zuihou-authority-server/sql/*.sql 里面的脚本用于项目启动后,配置 SCHEMADATASOURCE 模式,新建租户时使用 zuihou_base.sql 存放的是 新租户的 表结构zuihou_base_data.sql 存放的是:新租户的 必要数据, 没有docs/sql/*.sql里面的业务数据!!!