很多時候,我們部署一個項目的時候,需要創建大量的數據表。例如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)。當項目啟動后,發現會自動創建數據表。