Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
canifa_note
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Vũ Hoàng Anh
canifa_note
Commits
3c06c686
Commit
3c06c686
authored
Mar 28, 2022
by
email
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
chore: update db initial
parent
0fea2a86
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
57 additions
and
32 deletions
+57
-32
10001__schema.sql
store/migration/10001__schema.sql
+5
-22
10000__reset.sql
store/seed/10000__reset.sql
+4
-0
10000_reset.sql
store/seed/10000_reset.sql
+0
-4
10001__user.sql
store/seed/10001__user.sql
+15
-0
10002__memo.sql
store/seed/10002__memo.sql
+4
-0
sqlite.go
store/sqlite.go
+29
-6
No files found.
store/
seed/10001
_schema.sql
→
store/
migration/10001_
_schema.sql
View file @
3c06c686
DROP
TABLE
IF
EXISTS
`memo`
;
DROP
TABLE
IF
EXISTS
`shortcut`
;
DROP
TABLE
IF
EXISTS
`resource`
;
DROP
TABLE
IF
EXISTS
`user`
;
-- user
CREATE
TABLE
user
(
id
INTEGER
PRIMARY
KEY
AUTOINCREMENT
,
...
...
@@ -115,25 +120,3 @@ SET
WHERE
rowid
=
old
.
rowid
;
END
;
INSERT
INTO
user
(
`id`
,
`name`
,
`open_id`
,
`password_hash`
)
VALUES
(
1
,
'guest'
,
'guest_open_id'
,
-- "secret"
'$2a$14$ajq8Q7fbtFRQvXpdCq7Jcuy.Rx1h/L4J60Otx.gyNLbAYctGMJ9tK'
);
INSERT
INTO
memo
(
`content`
,
`creator_id`
)
VALUES
(
'👋 Welcome to memos'
,
1
);
store/seed/10000__reset.sql
0 → 100644
View file @
3c06c686
DELETE
FROM
resource
;
DELETE
FROM
shortcut
;
DELETE
FROM
memo
;
DELETE
FROM
user
;
store/seed/10000_reset.sql
deleted
100644 → 0
View file @
0fea2a86
DROP
TABLE
IF
EXISTS
`memo`
;
DROP
TABLE
IF
EXISTS
`shortcut`
;
DROP
TABLE
IF
EXISTS
`resource`
;
DROP
TABLE
IF
EXISTS
`user`
;
store/seed/10001__user.sql
0 → 100644
View file @
3c06c686
INSERT
INTO
user
(
`id`
,
`name`
,
`open_id`
,
`password_hash`
)
VALUES
(
101
,
'guest'
,
'guest_open_id'
,
-- "secret"
'$2a$14$ajq8Q7fbtFRQvXpdCq7Jcuy.Rx1h/L4J60Otx.gyNLbAYctGMJ9tK'
);
store/seed/10002__memo.sql
0 → 100644
View file @
3c06c686
INSERT
INTO
memo
(
`content`
,
`creator_id`
)
VALUES
(
'👋 Welcome to memos'
,
101
);
store/sqlite.go
View file @
3c06c686
...
...
@@ -11,6 +11,9 @@ import (
_
"github.com/mattn/go-sqlite3"
)
//go:embed migration
var
migrationFS
embed
.
FS
//go:embed seed
var
seedFS
embed
.
FS
...
...
@@ -44,7 +47,10 @@ func (db *DB) Open() (err error) {
}
if
db
.
mode
==
"dev"
{
// If mode is dev, then we will seed the database.
// If mode is dev, then we will migrate and seed the database.
if
err
:=
db
.
migrate
();
err
!=
nil
{
return
fmt
.
Errorf
(
"failed to migrate: %w"
,
err
)
}
if
err
:=
db
.
seed
();
err
!=
nil
{
return
fmt
.
Errorf
(
"failed to seed: %w"
,
err
)
}
...
...
@@ -53,6 +59,23 @@ func (db *DB) Open() (err error) {
return
err
}
func
(
db
*
DB
)
migrate
()
error
{
filenames
,
err
:=
fs
.
Glob
(
migrationFS
,
fmt
.
Sprintf
(
"%s/*.sql"
,
"migration"
))
if
err
!=
nil
{
return
err
}
sort
.
Strings
(
filenames
)
// Loop over all migration files and execute them in order.
for
_
,
filename
:=
range
filenames
{
if
err
:=
db
.
executeFile
(
migrationFS
,
filename
);
err
!=
nil
{
return
fmt
.
Errorf
(
"migrate error: name=%q err=%w"
,
filename
,
err
)
}
}
return
nil
}
func
(
db
*
DB
)
seed
()
error
{
filenames
,
err
:=
fs
.
Glob
(
seedFS
,
fmt
.
Sprintf
(
"%s/*.sql"
,
"seed"
))
if
err
!=
nil
{
...
...
@@ -63,23 +86,23 @@ func (db *DB) seed() error {
// Loop over all seed files and execute them in order.
for
_
,
filename
:=
range
filenames
{
if
err
:=
db
.
seedFile
(
filename
);
err
!=
nil
{
if
err
:=
db
.
executeFile
(
seedFS
,
filename
);
err
!=
nil
{
return
fmt
.
Errorf
(
"seed error: name=%q err=%w"
,
filename
,
err
)
}
}
return
nil
}
//
seed
File runs a single seed file within a transaction.
func
(
db
*
DB
)
seedFile
(
name
string
)
error
{
//
execute
File runs a single seed file within a transaction.
func
(
db
*
DB
)
executeFile
(
FS
embed
.
FS
,
name
string
)
error
{
tx
,
err
:=
db
.
Db
.
Begin
()
if
err
!=
nil
{
return
err
}
defer
tx
.
Rollback
()
// Read and execute
migration
file.
if
buf
,
err
:=
fs
.
ReadFile
(
seed
FS
,
name
);
err
!=
nil
{
// Read and execute
SQL
file.
if
buf
,
err
:=
fs
.
ReadFile
(
FS
,
name
);
err
!=
nil
{
return
err
}
else
if
_
,
err
:=
tx
.
Exec
(
string
(
buf
));
err
!=
nil
{
return
err
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
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 comment