2015-10-01 26 views
5

Sto creando una nuova tabella, in questo modo:Qual è l'impostazione del vincolo nullable predefinita per una colonna liquibase?

<createTable tableName="myTable"> 
     <column name="key" type="int" autoIncrement="true"> 
      <constraints primaryKey="true" primaryKeyName="PK_myTable" nullable="false"/> 
     </column> 
     <column name="name" type="nvarchar(40)"> 
      <constraints nullable="false"/> 
     </column> 
     <column name="description" type="nvarchar(100)"> 
      <constraints nullable="true"/> 
     </column> 
    </createTable> 

Per quanto riguarda il vincolo nullable, se tralascio quell'attributo qual è l'impostazione di default?

esempio Se ho fatto solo questo:

<column name="description" type="nvarchar(100)"/> 

... sarebbe la colonna è nullable?

Ancora più importante, dov'è la documentazione che specifica questo (come ho altre domande come questa)?

ho guardato qui: Liquibase Column Tag, ma si dice solo ambigua:

annullabile - è colonna Null?

risposta

4

Non è documentato, ma ho guardato il codice sorgente e sembra che se non si specifica, non è stato aggiunto alcun vincolo alla colonna. Un modo per verificarlo è utilizzare il comando liquibase updateSql per esaminare l'SQL generato.

+0

Puoi dirmi quale codice hai guardato, per favore? (Pacchetto, classe) – LimaNightHawk

+1

ColumnConfig: https://github.com/liquibase/liquibase/blob/master/liquibase-core/src/main/java/liquibase/change/ColumnConfig.java – SteveDonie

+0

E in particolare AddColumnChange: https: // github.com/liquibase/liquibase/blob/master/liquibase-core/src/main/java/liquibase/change/core/AddColumnChange.java#L100-L102 – SteveDonie