@@ -34,7 +34,15 @@ extension PostgreSQLQuery {
3434 columns: fluent. createColumns,
3535 constraints: fluent. createConstraints
3636 ) )
37- case . alter: fatalError ( )
37+ case . alter:
38+ query = . alterTable( . init(
39+ ifExists: false ,
40+ name: fluent. table,
41+ addColumns: fluent. createColumns,
42+ dropColumns: fluent. deleteColumns. map { $0. name } ,
43+ addConstraints: fluent. createConstraints,
44+ dropConstraints: fluent. deleteConstraints. map { $0. name ?? " unknown " }
45+ ) )
3846 case . drop:
3947 query = . dropTable( . init( name: fluent. table, ifExists: false ) )
4048 }
@@ -61,7 +69,7 @@ extension PostgreSQLDatabase: SchemaSupporting {
6169
6270 public static func schemaField( for type: Any . Type , isIdentifier: Bool , _ column: PostgreSQLQuery . Column ) -> PostgreSQLQuery . ColumnDefinition {
6371 var constraints : [ PostgreSQLQuery . ColumnConstraint ] = [ ]
64- let dataType : PostgreSQLQuery . DataType
72+ var dataType : PostgreSQLQuery . DataType
6573
6674 var type = type
6775 if let optional = type as? AnyOptionalType . Type {
@@ -90,10 +98,19 @@ extension PostgreSQLDatabase: SchemaSupporting {
9098 }
9199
92100 if isIdentifier {
93- switch dataType {
94- case . smallint, . integer, . bigint:
95- constraints. append ( . init( . generated( . byDefault) ) )
96- default : break
101+ if _globalEnableIdentityColumns {
102+ switch dataType {
103+ case . smallint, . integer, . bigint:
104+ constraints. append ( . init( . generated( . byDefault) ) )
105+ default : break
106+ }
107+ } else {
108+ switch dataType {
109+ case . smallint: dataType = . smallserial
110+ case . integer: dataType = . serial
111+ case . bigint: dataType = . bigserial
112+ default : break
113+ }
97114 }
98115
99116 // create a unique name for the primary key since it will be added
0 commit comments