4

新しいフィールドを既存のテーブルに追加する必要があります。Beego でこれを行う正しいプロセスは何ですか?

私は Django の南部に精通しています。最初に で移行スクリプトを生成しmanage.py schema_migration、次に移行スクリプトを実行しますmanage.py migrate

Beego には、bee generate migrationで移行スクリプトを生成するコマンドがありdatabase/migrations/xxx.goます。しかし、この生成されたスクリプトの使い方がわかりません。何も接続されていないようです。

また、移行について言及しているドキュメントはありません。

4

3 に答える 3

7

同じ問題に遭遇しました.MySqlを使用しています. これが私がやった方法です-

を使用して移行ファイルを作成しましたbee generate:

$ bee generate migration user
2016/06/26 13:36:31 [INFO] Using 'user' as migration name
2016/06/26 13:36:32 [INFO] Migration file generated: /path/to/project/database/migrations/20160626_140247_user.go
2016/06/26 13:36:32 [SUCC] generate successfully created!

これでファイルが生成され、以下がファイルの内容です。

package main

import (
    "github.com/astaxie/beego/migration"
)

// DO NOT MODIFY
type User_20160626_140247 struct {
    migration.Migration
}

// DO NOT MODIFY
func init() {
    m := &User_20160626_140247{}
    m.Created = "20160626_140247"
    migration.Register("User_20160626_140247", m)
}

// Run the migrations
func (m *User_20160626_140247) Up() {
    // use m.SQL("CREATE TABLE ...") to make schema update

}

// Reverse the migrations
func (m *User_20160626_140247) Down() {
    // use m.SQL("DROP TABLE ...") to reverse schema update

}

Upメソッドとメソッドを更新しましたDown。これらのメソッドのコメントでは、m.SQL生の SQL クエリを実行するために呼び出すことができることがわかります。ここでは、alterコマンドを使用して構造を更新できます。

変更が完了したら、実行bee migrateしてこれらの移行を適用できます。以下は例です-

$bee migrate -conn="username:password@tcp(127.0.0.1:3306)/mydb"

お役に立てれば。

于 2016-06-26T09:09:12.380 に答える
0

移行ファイル beego も追加する必要があると思います。次に、 bee migrate -driver='mysql' -conn='root:@tcp(127.0.0.1:3306)/test'

于 2015-10-08T09:23:12.537 に答える