项目spring cloud整合flyway

公司项目用的微服务架构

苦于每次需要手动改数据库表

然后我在想能不能集成一个数据库版本管理工具

调查选择flyway

因为项目是分布式的,每个服务有一个数据库

然后我的做法是创建一个共同的子工程来统一管理sql文件

然后再resources目录创建每个工程对应的文件夹


再总的application.yml写入

#前缀: V 代表版本变迁(Versioned Migrations), U 代表撤销变迁(Undo Migrations), R 代表可重复变迁(Repeatable Migrations)
#版本号: 唯一的版本号,比如V1.0.1
#分隔符: __ (两个下划线)
#描述信息: 描述信息
#后缀: .sql
  flyway:
    # 是否开启flyway
    enabled: true
    encoding: utf-8
    # 是否禁用数据库清理
    clean-disabled: true
    # 若连接的数据库非空库,是否初始化
    # 当迁移时发现目标schema非空,而且带有没有元数据的表时,是否自动执行基准迁移,默认false.
    baseline-on-migrate: true
    # sql脚本文件名前缀,默认大写V
    sql-migration-prefix: V
    # sql脚本文件名称的分隔符,默认2个下划线__
    sql-migration-separator: __
    # 迁移sql脚本文件名称的后缀
    sql-migration-suffixes: .sql
    # metadata 版本控制信息表 默认 flyway_schema_history
    table: flyway_schema_history
    # 指定 baseline 的版本号,默认值为 1, 低于该版本号的 SQL 文件, migrate 时会被忽略
    baseline-version: 1

然后再每个服务的配置文件中写入

  flyway:
    # 默认存放sql脚本目录,默认为db/migration
    locations: classpath:db/migration/im

指定每个工程sql位置

即可。。。。

sql文件的命名规则如下:

前缀: V 代表版本变迁(Versioned Migrations), U 代表撤销变迁(Undo Migrations), R 代表可重复变迁(Repeatable Migrations)

版本号: 唯一的版本号,比如V1.0.1

分隔符: __ (两个下划线)

描述信息: 描述信息

后缀: .sql

V1.0.0__create_user.sql

springboot 微服务工程

我在通用子工程中添加了一个config配置类
但是项目启动不能自动注入
发现需要在resources下的META-INF文件夹里的

spring.factories
里面添加配置类的全限类名

然后就可以注入了

这个是为啥那
我为啥直接在类上不能注入那?

Element el-cascader放在el-dialog的表单中,懒加载时弹窗关闭再打开不会重新加载数据

记录bug

在el-dialog中写放一个级联选择器el-cascader,在列表中编辑时,发现再次打开选择器没有被初始化,导致编辑回显的数据错误

解决办法 给dialog弹窗加一个v-if 在弹窗关闭时销毁弹窗

 <el-dialog v-if="dialogVisible" title="标题" :visible.sync="dialogVisible"
    :close-on-click-modal="false"  width="700px" append-to-body>
    <el-form :inline="true" ref="form" :model="modelData">
      <el-form-item label="名称">
        <el-cascader :props="props" v-model="modelData.productCategoryId"></el-cascader>
      </el-form-item>
    </el-form>
    <div slot="footer" class="dialog-footer">
      <el-button @click="cancel()">取消</el-button>
      <el-button type="primary" @click="handleSave">确认</el-button>
    </div>
  </el-dialog>

测试 使用el-dialog中的方法 关闭时销毁 Dialog 中的元素 发现不行
destroy-on-close 无用

Linux 磁盘空间查询

在 Linux 上:

使用终端:

   打开终端应用。
   使用如下命令查找最大的文件或目录:

du -h / | sort -rh | head -n 20

du -h /:列出根目录下所有文件和目录的大小。
sort -rh:按大小逆序排序。
head -n 20:显示前 20 条结果。

查询某个目录下的文件占用情况:

du -sh  ./*