dialect/sql/schema: alter column for postgres

Summary: Pull Request resolved: https://github.com/facebookincubator/ent/pull/117

Reviewed By: alexsn

Differential Revision: D18083914

fbshipit-source-id: a5f6993cfe9a260a84c0d4ab868e3e797b3a5776
This commit is contained in:
Ariel Mashraki
2019-10-23 05:37:42 -07:00
committed by Facebook Github Bot
parent a0c7ee77dc
commit c414cd9a82
8 changed files with 83 additions and 17 deletions

View File

@@ -54,10 +54,10 @@ func (c *ColumnBuilder) Attr(attr string) *ColumnBuilder {
// Query returns query representation of a Column.
func (c *ColumnBuilder) Query() (string, []interface{}) {
c.Ident(c.name)
if c.postgres() && c.modify {
c.Pad().WriteString("TYPE")
}
if c.typ != "" {
if c.postgres() && c.modify {
c.Pad().WriteString("TYPE")
}
c.Pad().WriteString(c.typ)
}
if c.attr != "" {
@@ -225,7 +225,7 @@ func (t *TableAlter) AddColumn(c *ColumnBuilder) *TableAlter {
return t
}
// Modify appends the `MODIFY COLUMN` clause to the given `ALTER TABLE` statement.
// Modify appends the `MODIFY/ALTER COLUMN` clause to the given `ALTER TABLE` statement.
func (t *TableAlter) ModifyColumn(c *ColumnBuilder) *TableAlter {
switch {
case t.postgres():
@@ -237,6 +237,14 @@ func (t *TableAlter) ModifyColumn(c *ColumnBuilder) *TableAlter {
return t
}
// ModifyColumns calls ModifyColumn with each of the given builders.
func (t *TableAlter) ModifyColumns(cs ...*ColumnBuilder) *TableAlter {
for _, c := range cs {
t.ModifyColumn(c)
}
return t
}
// DropColumn appends the `DROP COLUMN` clause to the given `ALTER TABLE` statement.
func (t *TableAlter) DropColumn(c *ColumnBuilder) *TableAlter {
t.Queries = append(t.Queries, &Wrapper{"DROP COLUMN %s", c})