# xorm 工具
xorm 是一組數據庫操作命令行工具。
### 二進制安裝
如果你安裝了 [got](https://github.com/gobuild/got),你可以輸入如下命令安裝:
~~~
got go-xorm/cmd/xorm
~~~
或者你可以從 [gobuild](http://gobuild.io/download/github.com/lunny/got) 下載后解壓到可執行路徑。
### 源碼安裝
`go get github.com/go-xorm/cmd/xorm`
同時你需要安裝如下依賴:
-
github.com/go-xorm/xorm
-
Mysql: [github.com/go-sql-driver/mysql](https://github.com/go-sql-driver/mysql)
-
MyMysql: [github.com/ziutek/mymysql/godrv](https://github.com/ziutek/mymysql/godrv)
-
Postgres: [github.com/lib/pq](https://github.com/lib/pq)
-
SQLite: [github.com/mattn/go-sqlite3](https://github.com/mattn/go-sqlite3)
** 對于sqlite3的支持,你需要自己進行編譯 `go build -tags sqlite3` 因為sqlite3需要cgo的支持。
### 命令列表
有如下可用的命令:
- **reverse** 反轉一個數據庫結構,生成代碼
- **shell** 通用的數據庫操作客戶端,可對數據庫結構和數據操作
- **dump** Dump數據庫中所有結構和數據到標準輸出
- **source** 從標注輸入中執行SQL文件
- **driver** 列出所有支持的數據庫驅動
### reverse
Reverse command is a tool to convert your database struct to all kinds languages of structs or classes. After you installed the tool, you can type
`xorm help reverse`
to get help
example:
sqlite:`xorm reverse sqite3 test.db templates/goxorm`
mysql:`xorm reverse mysql root:@/xorm_test?charset=utf8 templates/goxorm`
mymysql:`xorm reverse mymysql xorm_test2/root/ templates/goxorm`
postgres:`xorm reverse postgres "dbname=xorm_test sslmode=disable" templates/goxorm`
will generated go files in `./model` directory
### Template and Config
Now, xorm tool supports go and c++ two languages and have go, goxorm, c++ three of default templates. In template directory, we can put a config file to control how to generating.
~~~
lang=go
genJson=1
~~~
lang must be go or c++ now.genJson can be 1 or 0, if 1 then the struct will have json tag.
### Shell
Shell command provides a tool to operate database. For example, you can create table, alter table, insert data, delete data and etc.
`xorm shell sqlite3 test.db` will connect to the sqlite3 database and you can type `help` to list all the shell commands.
### Dump
Dump command provides a tool to dump all database structs and data as SQL to your standard output.
`xorm dump sqlite3 test.db` could dump sqlite3 database test.db to standard output. If you want to save to file, justtype `xorm dump sqlite3 test.db > test.sql`.
### Source
`xorm source sqlite3 test.db < test.sql` will execute sql file on the test.db.
### Driver
List all supported drivers since default build will not include sqlite3.
### LICENSE
BSD License [http://creativecommons.org/licenses/BSD/](http://creativecommons.org/licenses/BSD/)