web-dev-qa-db-ja.com

Liquibaseで外部キー制約のあるテーブルを作成するにはどうすればよいですか?

Yamlを使用していますが、xmlやjsonとほぼ同じだと思います。 addForeignKeyConstraintを使用できることがわかりましたが、既存のテーブルを変更するのではなく、テーブルの作成時に制約を追加したいと思います。どうすればいいですか?このようなことはできますか?

  - changeSet:
      id: create_questions
      author: Author
      changes:
        - createTable:
            tableName: questions
            columns:
              - column:
                  name: id
                  type: int
                  autoIncrement: true
                  constraints:
                    primaryKey: true
                    nullable: false
              - column:
                  name: user_id
                  type: int
                  constraints:
                    foreignKey:
                      referencedColumnNames: id
                      referencedTableName: users
                    nullable: false
              - column:
                  name: question
                  type: varchar(255)
                  constraints:
                    nullable: false
9
godzsa

YAML形式を使用したことはありませんが、XML変更ログで次のことができます。

<column name="user_id" type="int">
   <constraints nullable="false" 
                foreignKeyName="fk_questions_author" 
                references="users(id)"/>
</column>

同等のYAMLは次のようになります。

- column:
    name: user_id
    type: int
    constraints:
        nullable: false
        foreignKeyName: fk_questions_author
        references: users(id)
17