mirror of
https://github.com/ent/ent.git
synced 2026-05-05 00:50:54 +03:00
dialect/sql/schema: initial work for incremental migration (#428)
This is a WIP PR and should be ignored this moment. It's based on PR #221 created by Erik Hollensbe (He should get his credit for his work before we land this).
This commit is contained in:
@@ -243,11 +243,6 @@ func (d *MySQL) addColumn(c *Column) *sql.ColumnBuilder {
|
||||
return b
|
||||
}
|
||||
|
||||
// alterColumn returns the DSL query for modifying the given column.
|
||||
func (d *MySQL) alterColumn(c *Column) []*sql.ColumnBuilder {
|
||||
return []*sql.ColumnBuilder{d.addColumn(c)}
|
||||
}
|
||||
|
||||
// addIndex returns the querying for adding an index to MySQL.
|
||||
func (d *MySQL) addIndex(i *Index, table string) *sql.IndexBuilder {
|
||||
return i.Builder(table)
|
||||
@@ -465,6 +460,24 @@ func (d *MySQL) tableSchema() sql.Querier {
|
||||
return sql.Raw("(SELECT DATABASE())")
|
||||
}
|
||||
|
||||
// alterColumns returns the queries for applying the columns change-set.
|
||||
func (d *MySQL) alterColumns(table string, add, modify, drop []*Column) sql.Queries {
|
||||
b := sql.Dialect(dialect.MySQL).AlterTable(table)
|
||||
for _, c := range add {
|
||||
b.AddColumn(d.addColumn(c))
|
||||
}
|
||||
for _, c := range modify {
|
||||
b.ModifyColumn(d.addColumn(c))
|
||||
}
|
||||
for _, c := range drop {
|
||||
b.DropColumn(sql.Dialect(dialect.MySQL).Column(c.Name))
|
||||
}
|
||||
if len(b.Queries) == 0 {
|
||||
return nil
|
||||
}
|
||||
return sql.Queries{b}
|
||||
}
|
||||
|
||||
// parseColumn returns column parts, size and signedness by mysql type
|
||||
func parseColumn(typ string) (parts []string, size int64, unsigned bool, err error) {
|
||||
switch parts = strings.FieldsFunc(typ, func(r rune) bool {
|
||||
|
||||
Reference in New Issue
Block a user