【the waiter】announcement:
Sql to xorm
| | |
feature introduction
- Table creation sql to xorm supporting multiple databases, including (pg, oracle, mysql) and other databases;table-building statements,table-building statements,table-building statements (important statements are said 3 times)
- When converting sql, you need to confirm whether you need to switch the processing type. Three processing methods are temporarily supported (normal,postgresql,oracle). Default:normal.
- Support custom filtering of unwanted fields. Multiple fields are separated by ,.
Note:cannot include comments in sql (that is,--xxx
or# xxx
), because this tool divides statement processing through ;. Therefore, multiple table creation statements can be processed at the same time in normal, postgresql and oracle only support a single table creation statement because they need to parse comments.
example
mysql table statement
CREATE TABLE if not exists user (
id int NOT NULL AUTO_INCREMENT,
name varchar(10) NOT NULL COMMENT 'name ',
gender tinyint NOT NULL DEFAULT 0 COMMENT 'Gender 0 -unknown 1 -male 2 -female ',
age int NOT NULL COMMENT 'age ',
created_date datetime DEFAULT CURRENT_TIMESTAMP,
updated_date datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id)
);
After treatment
// Code generated by https://gotool.top
package model
import (
"time"
)
type User struct {
Id int32 `xorm: "competing autoincr not null int 'id'"`
Name string `xorm: "not null comment ('name') varchar (10) 'name'"`
Gender int8 `xorm: "not null default 0 comment ('gender 0-unknown 1-male 2-female') tinyint 'gender'"`
Age int32 `xorm: "not null comment ('age') int 'age'"`
CreatedDate time.Time `xorm: "default 'CURRENT_TIMESTAMP' datetime' created_date'"`
UpdatedDate time.Time `xorm: "default 'CURRENT_TIMESTAMP' datetime' updated_date'"`
}
func (u * User) TableName () string {
return "user"
}
pgsql table statement
CREATE TABLE if not exists user (
id character varying (32) NOT NULL DEFAULT sys_guid ()
name character varying (10) NOT NULL
gender tinyint NOT NULL
age tinyint NOT NULL
created_date timestamp without time zone DEFAULT now ()
updated_date timestamp without time zone DEFAULT now ()
CONSTRAINT user_pkey PRIMARY KEY (id)
);
COMMENT ON TABLE user IS 'user Table'
COMMENT ON COLUMN user.id IS 'primary key'
COMMENT ON COLUMN user.name IS 'name'
COMMENT ON COLUMN user.gender IS 'Sex 0-unknown 1-male 2-female'
COMMENT ON COLUMN user.age IS 'age'
COMMENT ON COLUMN user.created_date IS 'creation time'
COMMENT ON COLUMN user.updated_date IS 'update time'
After treatment
// Code generated by https://gotool.top
package model
import (
"time"
)
type User struct {
Id int32 `xorm: "competing autoincr not null int 'id'"`
Name string `xorm: "not null comment ('name') varchar (10) 'name'"`
Gender int8 `xorm: "not null default 0 comment ('gender 0-unknown 1-male 2-female') tinyint 'gender'"`
Age int32 `xorm: "not null comment ('age') int 'age'"`
CreatedDate time.Time `xorm: "default 'CURRENT_TIMESTAMP' datetime' created_date'"`
UpdatedDate time.Time `xorm: "default 'CURRENT_TIMESTAMP' datetime' updated_date'"`
}
func (u * User) TableName () string {
return "user"
}
oracle table statement
CREATE TABLE if not exists user (
id character varying (32) NOT NULL DEFAULT sys_guid ()
name character varying (10) NOT NULL
gender tinyint NOT NULL
age tinyint NOT NULL
created_date timestamp without time zone DEFAULT now ()
updated_date timestamp without time zone DEFAULT now ()
CONSTRAINT user_pkey PRIMARY KEY (id)
);
COMMENT ON TABLE user IS 'user Table'
COMMENT ON COLUMN user.id IS 'primary key'
COMMENT ON COLUMN user.name IS 'name'
COMMENT ON COLUMN user.gender IS 'Sex 0-unknown 1-male 2-female'
COMMENT ON COLUMN user.age IS 'age'
COMMENT ON COLUMN user.created_date IS 'creation time'
COMMENT ON COLUMN user.updated_date IS 'update time'
After treatment
// Code generated by https://gotool.top
package model
import (
"time"
)
type User struct {
Id int32 `xorm: "competing autoincr not null int 'id'"`
Name string `xorm: "not null comment ('name') varchar (10) 'name'"`
Gender int8 `xorm: "not null default 0 comment ('gender 0-unknown 1-male 2-female') tinyint 'gender'"`
Age int32 `xorm: "not null comment ('age') int 'age'"`
CreatedDate time.Time `xorm: "default 'CURRENT_TIMESTAMP' datetime' created_date'"`
UpdatedDate time.Time `xorm: "default 'CURRENT_TIMESTAMP' datetime' updated_date'"`
}
func (u * User) TableName () string {
return "user"
}