Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
张磊
/
FileStorageBeego
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
b97279a7
authored
2014-08-12 15:49:30 +0800
by
astaxie
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
update the migration
1 parent
6a78898b
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
27 additions
and
5 deletions
migration/migration.go
migration/migration.go
View file @
b97279a
...
...
@@ -12,6 +12,7 @@ package migration
import
(
"errors"
"sort"
"strings"
"time"
"github.com/astaxie/beego"
...
...
@@ -25,7 +26,7 @@ const M_DATE_FORMAT = "20060102_150405"
type
Migrationer
interface
{
Up
()
Down
()
Exec
()
error
Exec
(
name
,
status
string
)
error
GetCreated
()
int64
}
...
...
@@ -57,7 +58,7 @@ func (m *Migration) Sql(sql string) {
}
// execute the sql already add in the sql
func
(
m
*
Migration
)
Exec
()
error
{
func
(
m
*
Migration
)
Exec
(
name
,
status
string
)
error
{
o
:=
orm
.
NewOrm
()
for
_
,
s
:=
range
m
.
sqls
{
beego
.
Info
(
"exec sql:"
,
s
)
...
...
@@ -67,7 +68,28 @@ func (m *Migration) Exec() error {
return
err
}
}
return
m
.
addOrUpdateRecord
(
name
,
status
)
}
func
(
m
*
Migration
)
addOrUpdateRecord
(
status
,
name
string
)
error
{
o
:=
orm
.
NewOrm
()
if
status
==
"down"
{
status
=
"rollback"
p
,
err
:=
o
.
Raw
(
"update migrations set status = ?,rollback_statements = ? where name = ?"
)
.
Prepare
()
if
err
!=
nil
{
return
nil
}
_
,
err
=
p
.
Exec
(
status
,
strings
.
Join
(
m
.
sqls
,
"; "
),
name
)
return
err
}
else
{
status
=
"update"
p
,
err
:=
o
.
Raw
(
"insert into migrations(`name`,`created_at`,`statements`,`status`) values(?,?,?,?)"
)
.
Prepare
()
if
err
!=
nil
{
return
err
}
_
,
err
=
p
.
Exec
(
name
,
m
.
GetCreated
(),
strings
.
Join
(
m
.
sqls
,
"; "
),
status
)
return
err
}
}
// get the unixtime from the Created
...
...
@@ -96,7 +118,7 @@ func Upgrade(lasttime int64) error {
if
v
.
created
>
lasttime
{
beego
.
Info
(
"start upgrade"
,
v
.
name
)
v
.
m
.
Up
()
err
:=
v
.
m
.
Exec
()
err
:=
v
.
m
.
Exec
(
v
.
name
,
"up"
)
if
err
!=
nil
{
return
err
}
...
...
@@ -113,7 +135,7 @@ func Rollback(name string) error {
if
v
,
ok
:=
migrationMap
[
name
];
ok
{
beego
.
Info
(
"start rollback"
)
v
.
Down
()
err
:=
v
.
Exec
()
err
:=
v
.
Exec
(
name
,
"down"
)
if
err
!=
nil
{
return
err
}
...
...
@@ -131,7 +153,7 @@ func Reset() error {
for
k
,
v
:=
range
migrationMap
{
beego
.
Info
(
"start reset:"
,
k
)
v
.
Down
()
err
:=
v
.
Exec
()
err
:=
v
.
Exec
(
k
,
"down"
)
if
err
!=
nil
{
return
err
}
...
...
Write
Preview
Styling with
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment