enum Datentyp für liquibase

8

Ich arbeite gerade an einer liquibase.xml-Datei, um die Tabelle table_a zu erstellen. Eines meiner Felder ist <column name="state" type="ENUM('yes','no')"> Ich benutze postgresql als mein DBMS. Gibt es etwas wie enum data type? Ich habe das gelesen wie Ссылка

dass postgresql keinen solchen Datentyp hat. CREATE TYPE-Funktion wird verwendet, um diesen Datentyp zu erstellen. Ich weiß immer noch nicht, wie man es in Liquibase macht.

Irgendwelche Vorschläge?

    
Ali Taha Ali Mahboub 27.02.2011, 13:21
quelle

2 Antworten

14

Nun, natürlich hat PostgreSQL einen Enum-Typ (was in dem Link, den Sie gezeigt haben, und im Handbuch eindeutig dokumentiert ist).

Ich glaube nicht, dass Liquibase "nativ" Enums für PostgreSQL unterstützt, aber Sie sollten es mit einem benutzerdefinierten SQL erreichen können:

%Vor%

Für eine einfache Ja / Nein-Spalte würde ich tatsächlich den boolean -Typ anstelle einer Aufzählung verwenden

    
a_horse_with_no_name 27.02.2011, 13:47
quelle
1

Eine Alternative zum Erstellen eines neuen Typs wäre eine einfache CHECK-Einschränkung für eine varchar(3) -Spalte:

%Vor%

Das könnte besser mit der Client-Seite spielen oder nicht. Ich denke, boolean (wie von a_horse_with_no_name vorgeschlagen) wäre ein besserer Aufruf für diesen speziellen Fall: genau zu sagen, was du meinst, funktioniert normalerweise besser als die Alternativen.

    
mu is too short 27.02.2011 18:16
quelle