mirror of
https://github.com/astaxie/beego.git
synced 2024-12-22 17:10:50 +00:00
Update: fixing some methods and adding documentation
Signed-off-by: Gnanakeethan Balasubramaniam <gnanakeethan@gmail.com>
This commit is contained in:
parent
e888fee4e0
commit
7c2ec075a4
@ -63,6 +63,19 @@ type RenameColumn struct {
|
||||
Column
|
||||
}
|
||||
|
||||
// CreateTable creates the table on system
|
||||
func (m *Migration) CreateTable(tablename, engine, charset string, p ...func()) {
|
||||
m.TableName = tablename
|
||||
m.Engine = engine
|
||||
m.Charset = charset
|
||||
m.ModifyType = "create"
|
||||
}
|
||||
|
||||
func (m *Migration) AlterTable(tablename string) {
|
||||
m.TableName = tablename
|
||||
m.ModifyType = "alter"
|
||||
}
|
||||
|
||||
// NewCol creates a new standard column and attaches it to m struct
|
||||
func (m *Migration) NewCol(name string) *Column {
|
||||
col := &Column{Name: name}
|
||||
|
48
migration/doc.go
Normal file
48
migration/doc.go
Normal file
@ -0,0 +1,48 @@
|
||||
package migration
|
||||
|
||||
/* Package migration enables you to generate migrations back and forth. It generates both migrations.
|
||||
|
||||
|
||||
//Creates a table
|
||||
m.CreateTable("tablename","InnoDB","utf8");
|
||||
|
||||
|
||||
|
||||
//Alter a table
|
||||
m.AlterTable("tablename")
|
||||
|
||||
|
||||
|
||||
//Standard Column Methods
|
||||
* SetDataType
|
||||
* SetNullable
|
||||
* SetDefault
|
||||
* SetUnsigned (use only on integer types unless produces error)
|
||||
|
||||
|
||||
//Sets a primary column, multiple calls allowed, standard column methods available
|
||||
m.PriCol("id").SetAuto(true).SetNullable(false).SetDataType("INT(10)").SetUnsigned(true)
|
||||
|
||||
//UniCol Can be used multiple times, allows standard Column methods. Use same "index" string to add to same index
|
||||
m.UniCol("index","column")
|
||||
|
||||
//Standard Column Initialisation, can call .Remove() after NewCol("") on alter to remove
|
||||
m.NewCol("name").SetDataType("VARCHAR(255) COLLATE utf8_unicode_ci").SetNullable(false)
|
||||
m.NewCol("value").SetDataType("DOUBLE(8,2)").SetNullable(false)
|
||||
|
||||
//Rename Columns , only use with Alter table, doesn't works with Create, prefix standard column methods with "Old" to
|
||||
//create a true reversible migration eg: SetOldDataType("DOUBLE(12,3)")
|
||||
m.RenameColumn("from","to")...
|
||||
|
||||
|
||||
//Foreign Columns, single columns are only supported, SetOnDelete & SetOnUpdate are available, call appropriately.
|
||||
//Supports standard column methods, automatic reverse.
|
||||
m.ForeignCol("local_col","foreign_col","foreign_table")
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
*/
|
@ -52,6 +52,7 @@ type Migrationer interface {
|
||||
GetCreated() int64
|
||||
}
|
||||
|
||||
//Migration defines the migrations by either SQL or DDL
|
||||
type Migration struct {
|
||||
sqls []string
|
||||
Created string
|
||||
@ -82,11 +83,24 @@ func init() {
|
||||
// Up implement in the Inheritance struct for upgrade
|
||||
func (m *Migration) Up() {
|
||||
|
||||
switch m.ModifyType {
|
||||
case "reverse":
|
||||
m.ModifyType = "alter"
|
||||
case "delete":
|
||||
m.ModifyType = "create"
|
||||
}
|
||||
m.sqls = append(m.sqls, m.GetSQL())
|
||||
}
|
||||
|
||||
// Down implement in the Inheritance struct for down
|
||||
func (m *Migration) Down() {
|
||||
|
||||
switch m.ModifyType {
|
||||
case "alter":
|
||||
m.ModifyType = "reverse"
|
||||
case "create":
|
||||
m.ModifyType = "delete"
|
||||
}
|
||||
m.sqls = append(m.sqls, m.GetSQL())
|
||||
}
|
||||
|
||||
//Migrate adds the SQL to the execution list
|
||||
|
Loading…
Reference in New Issue
Block a user