Liquibase loadData 取决于上下文
Liquibase loadData depending on context
我有一个安装了 liquibase 和一些 changeSet 的 springboot 项目。为了更简单,我使用 loadData 从我的 csv 文件加载数据。现在我正在生产中部署它,但我想创建没有数据的 table。
<changeSet id="00000000000001" author="jhipster">
<createTable tableName="jhi_user">
<column name="id" type="bigint" autoIncrement="${autoIncrement}">
<constraints primaryKey="true" nullable="false"/>
</column>
[...]
<loadData encoding="UTF-8"
file="config/liquibase/users.csv"
separator=";"
tableName="jhi_user">
<column name="activated" type="boolean"/>
<column name="created_date" type="timestamp"/>
</loadData>
</changeSet>
是否可以根据上下文加载数据?
在jhipster liquibase配置中,有PROD和DEV
上下文。
使用
<changeSet id="00000000000001" author="jhipster" context="DEV" >
只在开发中播放这个变更集
您可以使用多个 changeSet 来选择您的加载数据上下文。
标准生成的单元测试使用 PROD 来准备数据库。
例如在您的文件中:22220000000000 将仅在 DEV 中,222100000000000 将在 DEV + PROD 中
<changeSet id="22220000000000" author="Korrident" context="DEV">
<loadData encoding="UTF-8"
file="config/liquibase/DEV_boards.csv"
separator=";"
tableName="board">
</loadData>
<loadData encoding="UTF-8"
file="config/liquibase/DEV_game_managements.csv"
separator=";"
tableName="game_management">
</loadData>
</changeSet>
<changeSet id="22210000000000" author="Korrident" >
<loadData encoding="UTF-8"
file="config/liquibase/DEV_PROD_players.csv"
separator=";"
tableName="player">
</loadData>
</changeSet>
官方 liquibase 文档:https://www.liquibase.org/documentation/contexts.html
我有一个安装了 liquibase 和一些 changeSet 的 springboot 项目。为了更简单,我使用 loadData 从我的 csv 文件加载数据。现在我正在生产中部署它,但我想创建没有数据的 table。
<changeSet id="00000000000001" author="jhipster">
<createTable tableName="jhi_user">
<column name="id" type="bigint" autoIncrement="${autoIncrement}">
<constraints primaryKey="true" nullable="false"/>
</column>
[...]
<loadData encoding="UTF-8"
file="config/liquibase/users.csv"
separator=";"
tableName="jhi_user">
<column name="activated" type="boolean"/>
<column name="created_date" type="timestamp"/>
</loadData>
</changeSet>
是否可以根据上下文加载数据?
在jhipster liquibase配置中,有PROD和DEV 上下文。
使用
<changeSet id="00000000000001" author="jhipster" context="DEV" >
只在开发中播放这个变更集 您可以使用多个 changeSet 来选择您的加载数据上下文。 标准生成的单元测试使用 PROD 来准备数据库。
例如在您的文件中:22220000000000 将仅在 DEV 中,222100000000000 将在 DEV + PROD 中
<changeSet id="22220000000000" author="Korrident" context="DEV">
<loadData encoding="UTF-8"
file="config/liquibase/DEV_boards.csv"
separator=";"
tableName="board">
</loadData>
<loadData encoding="UTF-8"
file="config/liquibase/DEV_game_managements.csv"
separator=";"
tableName="game_management">
</loadData>
</changeSet>
<changeSet id="22210000000000" author="Korrident" >
<loadData encoding="UTF-8"
file="config/liquibase/DEV_PROD_players.csv"
separator=";"
tableName="player">
</loadData>
</changeSet>
官方 liquibase 文档:https://www.liquibase.org/documentation/contexts.html