golang xorm reverse 自動生成數據庫實體文件


一、先安裝好需要的東西

xorm 也可以參考官方文檔 readme.md https://github.com/go-xorm/cmdhttp://xorm.io/docs/

go get github.com/go-xorm/cmd/xorm

安裝驅動版本,選擇自己需要用的

go get github.com/go-sql-driver/mysql  //Mysql
go get github.com/ziutek/mymysql/godrv  //MyMysql
go get github.com/lib/pq  //Postgres
go get github.com/mattn/go-sqlite3  //SQLite
go get github.com/denisenkom/go-mssqldb  //MSSQL

二、配置%GOPATH%/Bin的環境變量

三、測試xorm cmd是否安裝成功

xorm help reverse

xorm reverse命令參數如下所示

D:\MyConfiguration\xxx>xorm help reverse
usage: xorm reverse [-s] driverName datasourceName tmplPath [generatedPath] [tableFilterReg]

according database's tables and columns to generate codes for Go, C++ and etc.

    -s                Generated one go file for every table
    driverName        Database driver name, now supported four: mysql mymysql sqlite3 postgres
    datasourceName    Database connection uri, for detail infomation please visit driver's project page
    tmplPath          Template dir for generated. the default templates dir hasprovide 1 template
    generatedPath     This parameter is optional, if blank, the default value is models, then will
                      generated all codes in models dir
    tableFilterReg    Table name filter regexp

注意的是下面指令中的templates/goxorm 指的是%GOPATH%/Src\github.com\go-xorm\cmd\xorm\templates\goxorm
如果是cd切換到了%GOPATH%/Src\github.com\go-xorm\cmd\xorm的目錄,就可以使用下面的指令,否則tmplPath請填寫完整路徑。
參考案例:MSSQL

database command
sqlite xorm reverse sqite3 test.db templates/goxorm C:\temp
mysql xorm reverse mysql "root:123456@(127.0.0.1:3306)/test?charset=utf8" templates/goxorm C:\temp
mymysql xorm reverse mymysql xorm_test2/root/ templates/goxorm C:\temp
postgres xorm reverse postgres "user=postgres password=123456 dbname=test host=127.0.0.1 port=5432 sslmode=disable" templates/goxorm C:\temp
mssql xorm reverse mssql "server=127.0.0.1;user id=testid;password=testpwd;database=testdb" templates/goxorm C:\temp

ps:command 最后的 C:\temp 是指定 generatedPath(代碼生成的目錄)方便找到生成的代碼,此參數非必填
可以在項目里創建一個bat批處理文件直接生成實體代碼。

案例:MSSQL
方式一:指定 tmplPath(生成代碼的模板文件)絕對路徑

xorm reverse mssql "server=127.0.0.1;user id=sa;password=123456;database=shifenzheng" %GOPATH%\Src\github.com\go-xorm\cmd\xorm\templates\goxorm  C:\temp

方式二:cd先切換到xorm/cmd/xorm文件夾下再執行

cd %GOPATH%/Src\github.com\go-xorm\cmd\xorm
xorm reverse mssql "server=127.0.0.1;user id=sa;password=123456;database=shifenzheng" templates\goxorm  C:\temp

如圖:

生成后的代碼:

案例:POSTGRESQL

cd %GOPATH%/Src\github.com\go-xorm\cmd\xorm
xorm reverse postgres "user=postgres password=123456 dbname=test host=127.0.0.1 port=5432 sslmode=disable" templates\goxorm  C:\temp

如果生成報錯 Unknown colType: USER-DEFINED ,是因為表中有列包含了自定義數據類型,xorm官方暫時還不支持(如 ltree、postgis等)
https://github.com/go-xorm/xorm/issues/667 類似的issues還是挺多的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM