Add column DEFAULT attribute. Do not add if field is key or in
relations.
Showing
2 changed files
with
15 additions
and
1 deletions
| ... | @@ -104,7 +104,11 @@ func getColumnAddQuery(al *alias, fi *fieldInfo) string { | ... | @@ -104,7 +104,11 @@ func getColumnAddQuery(al *alias, fi *fieldInfo) string { |
| 104 | typ += " " + "NOT NULL" | 104 | typ += " " + "NOT NULL" |
| 105 | } | 105 | } |
| 106 | 106 | ||
| 107 | return fmt.Sprintf("ALTER TABLE %s%s%s ADD COLUMN %s%s%s %s", Q, fi.mi.table, Q, Q, fi.column, Q, typ) | 107 | return fmt.Sprintf("ALTER TABLE %s%s%s ADD COLUMN %s%s%s %s %s", |
| 108 | Q, fi.mi.table, Q, | ||
| 109 | Q, fi.column, Q, | ||
| 110 | typ, getColumnDefault(fi), | ||
| 111 | ) | ||
| 108 | } | 112 | } |
| 109 | 113 | ||
| 110 | // create database creation string. | 114 | // create database creation string. |
| ... | @@ -156,6 +160,9 @@ func getDbCreateSql(al *alias) (sqls []string, tableIndexes map[string][]dbIndex | ... | @@ -156,6 +160,9 @@ func getDbCreateSql(al *alias) (sqls []string, tableIndexes map[string][]dbIndex |
| 156 | // column += " DEFAULT " + fi.initial.String() | 160 | // column += " DEFAULT " + fi.initial.String() |
| 157 | //} | 161 | //} |
| 158 | 162 | ||
| 163 | // Append attribute DEFAULT | ||
| 164 | column += getColumnDefault(fi) | ||
| 165 | |||
| 159 | if fi.unique { | 166 | if fi.unique { |
| 160 | column += " " + "UNIQUE" | 167 | column += " " + "UNIQUE" |
| 161 | } | 168 | } |
| ... | @@ -240,6 +247,7 @@ func getDbCreateSql(al *alias) (sqls []string, tableIndexes map[string][]dbIndex | ... | @@ -240,6 +247,7 @@ func getDbCreateSql(al *alias) (sqls []string, tableIndexes map[string][]dbIndex |
| 240 | return | 247 | return |
| 241 | } | 248 | } |
| 242 | 249 | ||
| 250 | |||
| 243 | // Get string value for the attribute "DEFAULT" for the CREATE, ALTER commands | 251 | // Get string value for the attribute "DEFAULT" for the CREATE, ALTER commands |
| 244 | func getColumnDefault(fi *fieldInfo) string { | 252 | func getColumnDefault(fi *fieldInfo) string { |
| 245 | var ( | 253 | var ( | ... | ... |
| ... | @@ -116,6 +116,7 @@ type fieldInfo struct { | ... | @@ -116,6 +116,7 @@ type fieldInfo struct { |
| 116 | null bool | 116 | null bool |
| 117 | index bool | 117 | index bool |
| 118 | unique bool | 118 | unique bool |
| 119 | colDefault bool | ||
| 119 | initial StrTo | 120 | initial StrTo |
| 120 | size int | 121 | size int |
| 121 | auto_now bool | 122 | auto_now bool |
| ... | @@ -280,6 +281,11 @@ checkType: | ... | @@ -280,6 +281,11 @@ checkType: |
| 280 | fi.pk = attrs["pk"] | 281 | fi.pk = attrs["pk"] |
| 281 | fi.unique = attrs["unique"] | 282 | fi.unique = attrs["unique"] |
| 282 | 283 | ||
| 284 | // Mark object property if there is attribute "default" in the orm configuration | ||
| 285 | if _, ok := tags["default"]; ok { | ||
| 286 | fi.colDefault = true | ||
| 287 | } | ||
| 288 | |||
| 283 | switch fieldType { | 289 | switch fieldType { |
| 284 | case RelManyToMany, RelReverseMany, RelReverseOne: | 290 | case RelManyToMany, RelReverseMany, RelReverseOne: |
| 285 | fi.null = false | 291 | fi.null = false | ... | ... |
-
Please register or sign in to post a comment