This repository was archived by the owner on Dec 24, 2022. It is now read-only.
File tree Expand file tree Collapse file tree 1 file changed +25
-0
lines changed
src/ServiceStack.OrmLite.PostgreSQL Expand file tree Collapse file tree 1 file changed +25
-0
lines changed Original file line number Diff line number Diff line change @@ -333,6 +333,31 @@ public override string ToExecuteProcedureStatement(object objWithProperties)
333333 return sql ;
334334 }
335335
336+ public override string ToAlterColumnStatement ( Type modelType , FieldDefinition fieldDef )
337+ {
338+ var columnDefinition = GetColumnDefinition ( fieldDef ) ;
339+ var modelName = GetQuotedTableName ( GetModel ( modelType ) ) ;
340+
341+ var parts = columnDefinition . SplitOnFirst ( ' ' ) ;
342+ var columnName = parts [ 0 ] ;
343+ var columnType = parts [ 1 ] ;
344+
345+ var notNull = columnDefinition . Contains ( "NOT NULL" ) ;
346+
347+ var nullLiteral = notNull ? " NOT NULL" : " NULL" ;
348+ columnType = columnType . Replace ( nullLiteral , "" ) ;
349+
350+ var nullSql = notNull
351+ ? "SET NOT NULL"
352+ : "DROP NOT NULL" ;
353+
354+ var sql = $ "ALTER TABLE { modelName } \n "
355+ + $ " ALTER COLUMN { columnName } TYPE { columnType } ,\n "
356+ + $ " ALTER COLUMN { columnName } { nullSql } ";
357+
358+ return sql ;
359+ }
360+
336361 public override string GetQuotedTableName ( string tableName , string schema = null )
337362 {
338363 return ! Normalize || ReservedWords . Contains ( tableName ) || ( schema != null && ReservedWords . Contains ( schema ) )
You can’t perform that action at this time.
0 commit comments