A flexsible and powerful command line tool to convert database to codes
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
Jerry d29e5a0fd3 fix UT case (#17) il y a 1 semaine
cmd fix UT case (#17) il y a 1 semaine
example template add generate TableName() func (#13) il y a 1 semaine
language remove col.FieldName (#15) il y a 1 semaine
testdata init project il y a 6 mois
vendor upgrade xorm to v1.0.0 (#10) il y a 3 mois
.drone.yml store vendors on git il y a 5 mois
.gitignore fix lint il y a 5 mois
LICENSE init project il y a 6 mois
README.md template add generate TableName() func (#13) il y a 1 semaine
README_CN.md update readme il y a 5 mois
go.mod upgrade xorm to v1.0.0 (#10) il y a 3 mois
go.sum upgrade xorm to v1.0.0 (#10) il y a 3 mois
main.go fix lints il y a 5 mois

README.md

中文

Build Status

Reverse

A flexsible and powerful command line tool to convert database to codes.

Installation

go get xorm.io/reverse

Usage

reverse -f example/custom.yml

Configuration File

How does the simplest configuration file look like?

kind: reverse
name: mydb
source:
  database: sqlite3
  conn_str: '../testdata/test.db'
targets:
- type: codes
  language: golang
  output_dir: ../models

A language defines some default configuration items, also you can define all yourselves.

kind: reverse
name: mydb
source:
  database: sqlite
  conn_str: ../testdata/test.db
targets:
- type: codes
  include_tables: # tables included, you can use **
    - a
    - b
  exclude_tables: # tables excluded, you can use **
    - c
  table_mapper: snake # how table name map to class or struct name
  column_mapper: snake # how column name map to class or struct field name
  table_prefix: "" # table prefix
  multiple_files: true # generate multiple files or one
  template: | # template for code file, it has higher perior than template_path
    package models

    {{$ilen := len .Imports}}
    {{if gt $ilen 0}}
    import (
      {{range .Imports}}"{{.}}"{{end}}
    )
    {{end}}

    {{range .Tables}}
    type {{TableMapper .Name}} struct {
    {{$table := .}}
    {{range .ColumnsSeq}}{{$col := $table.GetColumn .}}	{{ColumnMapper $col.Name}}	{{Type $col}} `{{Tag $table $col}}`
    {{end}}
    }

    func (m *{{TableMapper .Name}}) TableName() string {
    	return "{{$table.Name}}"
    }
    {{end}}
  template_path: ./template/goxorm.tmpl # template path for code file, it has higher perior than template field on language
  output_dir: ./models # code output directory

Template Funcs

  • UnTitle: Convert first charator of the word to lower.
  • Upper: Convert word to all upper.
  • TableMapper: Mapper method to convert table name to class/struct name.
  • ColumnMapper: Mapper method to convert column name to class/struct field name.

Template Vars

  • Tables: All tables.
  • Imports: All imports needed.