Я делаю обновление таблицы, которая раньше была просто таблицей соединения, до реальной сущности. Таким образом, он не должен иметь первичного ключа идентификаторов сущностей, к которым он присоединяется, и устанавливает sh свой собственный идентификатор. Я попробовал это обновление конфигурации:
<changeSet id="20200429180824-1" author="jhipster">
<dropPrimaryKey columnNames="teacher_id, subject_id" tableName="teacher_subject"/>
<addColumn tableName="teacher_subject" author="jhipster">
<column name="id" type="bigint" autoIncrement="${autoIncrement}">
<constraints primaryKey="true" nullable="false"/>
</column>
<column name="teacher_status" type="varchar(255)" defaultValue="APPROVED">
<constraints nullable="true" />
</column>
<column name="achieved" type="datetime" defaultValueComputed="CURRENT_TIMESTAMP" >
<constraints nullable="true" />
</column>
<column name="active" type="boolean" defaultValue="true">
<constraints nullable="true" />
</column>
<!-- jhipster-needle-liquibase-add-column - JHipster will add columns here, do not remove-->
</addColumn>
<dropDefaultValue tableName="teacher_subject" columnName="achieved" columnDataType="datetime"/>
</changeSet>
Однако во время миграции я получаю ошибку с этим исключением, несмотря на мои ожидания, что столбец должен быть только что создан в данный момент и предварительно заполнен autoIncrement
данные:
liquibase.exception.DatabaseException: ОШИБКА: столбец "id" содержит нулевые значения