我有一个安装了liquibase和一些changeSet的springboot项目。为了简化开发,我使用loadData从csv文件中加载数据。现在,我将其部署到生产环境中,但我想创建不包含数据的表。
<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>
是否可以根据上下文加载数据?
答案 0 :(得分:2)
在jhipster liquibase配置中,有PROD和DEV 上下文。
使用
<changeSet id="00000000000001" author="jhipster" context="DEV" >
仅在dev中播放此变更集 您可以使用多个changeSet选择您的loaddata上下文。 标准生成的单元测试使用PROD准备数据库。
例如在您的文件中:22220000000000仅在DEV中,22210000000000将在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