mirror of
https://github.com/casdoor/casdoor.git
synced 2025-05-23 02:35:49 +08:00
feat: support create database via cmd line (#417)
This commit is contained in:
parent
728fe11a3c
commit
8d54bfad8a
@ -20,7 +20,7 @@ COPY --from=FRONT /web/build /web/build
|
|||||||
CMD chmod 777 /tmp && service mariadb start&&\
|
CMD chmod 777 /tmp && service mariadb start&&\
|
||||||
if [ "${MYSQL_ROOT_PASSWORD}" = "" ] ;then MYSQL_ROOT_PASSWORD=123456 ; fi&&\
|
if [ "${MYSQL_ROOT_PASSWORD}" = "" ] ;then MYSQL_ROOT_PASSWORD=123456 ; fi&&\
|
||||||
mysqladmin -u root password ${MYSQL_ROOT_PASSWORD} &&\
|
mysqladmin -u root password ${MYSQL_ROOT_PASSWORD} &&\
|
||||||
./wait-for-it localhost:3306 -- ./server
|
./wait-for-it localhost:3306 -- ./server --createDatabase=true
|
||||||
|
|
||||||
|
|
||||||
FROM alpine:latest
|
FROM alpine:latest
|
||||||
|
7
main.go
7
main.go
@ -15,6 +15,8 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"flag"
|
||||||
|
|
||||||
"github.com/astaxie/beego"
|
"github.com/astaxie/beego"
|
||||||
"github.com/astaxie/beego/logs"
|
"github.com/astaxie/beego/logs"
|
||||||
"github.com/astaxie/beego/plugins/cors"
|
"github.com/astaxie/beego/plugins/cors"
|
||||||
@ -23,12 +25,13 @@ import (
|
|||||||
"github.com/casbin/casdoor/object"
|
"github.com/casbin/casdoor/object"
|
||||||
"github.com/casbin/casdoor/proxy"
|
"github.com/casbin/casdoor/proxy"
|
||||||
"github.com/casbin/casdoor/routers"
|
"github.com/casbin/casdoor/routers"
|
||||||
|
|
||||||
_ "github.com/casbin/casdoor/routers"
|
_ "github.com/casbin/casdoor/routers"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
object.InitAdapter()
|
createDatabase := flag.Bool("createDatabase", false, "true if you need casdoor to create database")
|
||||||
|
flag.Parse()
|
||||||
|
object.InitAdapter(*createDatabase)
|
||||||
object.InitDb()
|
object.InitDb()
|
||||||
object.InitDefaultStorageProvider()
|
object.InitDefaultStorageProvider()
|
||||||
object.InitLdapAutoSynchronizer()
|
object.InitLdapAutoSynchronizer()
|
||||||
|
@ -35,11 +35,15 @@ func InitConfig() {
|
|||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
InitAdapter()
|
InitAdapter(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
func InitAdapter() {
|
func InitAdapter(createDatabase bool) {
|
||||||
|
|
||||||
adapter = NewAdapter(beego.AppConfig.String("driverName"), conf.GetBeegoConfDataSourceName(), beego.AppConfig.String("dbName"))
|
adapter = NewAdapter(beego.AppConfig.String("driverName"), conf.GetBeegoConfDataSourceName(), beego.AppConfig.String("dbName"))
|
||||||
|
if createDatabase {
|
||||||
|
adapter.CreateDatabase()
|
||||||
|
}
|
||||||
adapter.createTable()
|
adapter.createTable()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -75,6 +79,17 @@ func NewAdapter(driverName string, dataSourceName string, dbName string) *Adapte
|
|||||||
return a
|
return a
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (a *Adapter) CreateDatabase() error {
|
||||||
|
engine, err := xorm.NewEngine(a.driverName, a.dataSourceName)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer engine.Close()
|
||||||
|
|
||||||
|
_, err = engine.Exec(fmt.Sprintf("CREATE DATABASE IF NOT EXISTS %s default charset utf8 COLLATE utf8_general_ci", a.dbName))
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
func (a *Adapter) open() {
|
func (a *Adapter) open() {
|
||||||
dataSourceName := a.dataSourceName + a.dbName
|
dataSourceName := a.dataSourceName + a.dbName
|
||||||
if a.driverName != "mysql" {
|
if a.driverName != "mysql" {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user