@@ -508,6 +508,37 @@ class FluentPostgreSQLTests: XCTestCase {
508508 a = try a. save ( on: conn) . wait ( )
509509 }
510510
511+ // https://github.com/vapor/fluent-postgresql/issues/54
512+ func testGH54( ) throws {
513+ struct User : PostgreSQLModel , Migration {
514+ var id : Int ?
515+ var username : String
516+ }
517+
518+ struct AddUserIndex : PostgreSQLMigration {
519+ static func prepare( on conn: PostgreSQLConnection ) -> Future < Void > {
520+ return Database . update ( User . self, on: conn) { builder in
521+ builder. unique ( on: \. username)
522+ }
523+ }
524+
525+ static func revert( on conn: PostgreSQLConnection ) -> Future < Void > {
526+ return Database . update ( User . self, on: conn) { builder in
527+ builder. deleteUnique ( from: \. username)
528+ }
529+ }
530+ }
531+
532+ let conn = try benchmarker. pool. requestConnection ( ) . wait ( )
533+ conn. logger = DatabaseLogger ( database: . psql, handler: PrintLogHandler ( ) )
534+ defer { benchmarker. pool. releaseConnection ( conn) }
535+
536+ try User . prepare ( on: conn) . wait ( )
537+ defer { try ? User . revert ( on: conn) . wait ( ) }
538+ try AddUserIndex . prepare ( on: conn) . wait ( )
539+ defer { try ? AddUserIndex . revert ( on: conn) . wait ( ) }
540+ }
541+
511542 static let allTests = [
512543 ( " testBenchmark " , testBenchmark) ,
513544 ( " testNestedStruct " , testNestedStruct) ,
0 commit comments