很多时候,我们部署一个项目的时候,需要创建大量的数据表。例如mysql,一般的方法就是通过source
命令完成数据表的移植,如:source /root/test.sql
。如果我们需要一个项目启动后,就自动创建所需要的数据表,那么除了可以使用代码完成之外,还可以使用下面的方法。springboot的yml文件配置如下:
server: port: 9137 tomcat: uri-encoding: UTF-8 max-threads: 100 #最大并发数 max-connections: 200 #最大连接数 accepCount: 50 #等待数 spring: profiles: active: dev #切换开发环境和测试环境,dev为开发环境,prod为测试环境 application: name: vslm zipkin: base-url: http://localhost:9917/ sleuth: sampler: probability: 1.0 #2.0后percentage改为probability boot: admin: client: enabled: true url: "http://localhost:9905" #指定hi-admin 服务端地址 password: "admin" username: "admin" instance: prefer-ip: true datasource: url: jdbc:mysql://localhost:3306/vslm?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=UTC&useSSL=false driverClassName: com.mysql.jdbc.Driver username: root password: 123456 #项目启动后执行建表语句 schema: - classpath:sql/vslm.sql sql-script-encoding: utf-8 platform: mysql initialization-mode: always druid: #监控统计拦截的filters filters: stat #配置初始化大小/最小/最大 initial-size: 1 min-idle: 1 max-active: 20 #获取连接等待超时时间 max-wait: 60000 #间隔多久进行一次检测,检测需要关闭的空闲连接 time-between-eviction-runs-millis: 60000 #一个连接在池中最小生存的时间 min-evictable-idle-time-millis: 300000 validation-query: SELECT 'x' test-while-idle: true test-on-borrow: false test-on-return: false #打开PSCache,并指定每个连接上PSCache的大小。oracle设为true,mysql设为false。分库分表较多推荐设置为false pool-prepared-statements: false max-pool-prepared-statement-per-connection-size: 20 mybatis: mapper-locations: classpath:mapper/*.xml type-aliases-package: com.hierway.vslm.domain # 注意:对应实体类的路径 management: endpoints: web: exposure: include: "*" #暴露所有的端点我们可以看到更多的服务实例相关信息, endpoint: shutdown: enabled: true sensitive: false health: show-details: ALWAYS #health endpoint是否必须显示全部细节 dataacess: data-access-type: 0 # 0: 使用mybatis1: 使用data service dataservice: base-url: http://localhost:9763/services/reqm_dataservice rest-client: pool-size: 200 default-max-per-route: 100 connection-timeout: 5000 connection-request-timeout: 1000 socket-timeout: 65000 validate-after-inactivity: 2000 eureka: instance: lease-expiration-duration-in-seconds: 30 lease-renewal-interval-in-seconds: 10 prefer-ip-address: true client: registerWithEureka: true fetchRegistry: true #eureka服务端的地址 serviceUrl: defaultZone: http://admin:admin@10.10.10.3:9909/eureka/
然后在resource下创建文件夹sql(自定义)以及vslm.sql文件,键入数据定义语言DDL(Data Definition Language)。当项目启动后,发现会自动创建数据表。