Отсутствующая часть - это простой autoIncrement для идентификатора таблицы revinfo:
<createTable tableName="revinfo">
<column name="rev" type="integer" autoIncrement="true">
<constraints primaryKey="true"/>
</column>
<column name="revtstmp" type="bigint"/>
</createTable>
Без этого новые записи в таблице revinfo будут иметь нулевой идентификатор, который именно то, что говорит исключение.
Другая ошибка в приведенном выше коде Liquibase заключается в том, что идентификатор aud-table имеет первичный ключ только на идентификаторе. Это приведет к исключениям при обновлении сущностей. По словам Влада Михалчи, для таблицы aud должен быть комбинированный ключ:
<createTable tableName="stuff_aud">
<column name="id" type="${long_type}">
<constraints nullable="false" />
</column>
<column name="rev" type="integer">
<constraints referencedTableName="revinfo"
foreignKeyName="fk_brands_stuff_revinfo"
referencedColumnNames="rev"
nullable="false"/>
</column>
<column name="revtype" type="integer">
<constraints nullable="false"/>
</column>
<column name="stuff" type="varchar(36)">
<constraints nullable="false"/>
</column>
</createTable>
<addPrimaryKey tableName="stuff_aud" columnNames="id, rev" />