使用XO从Postgres DB表模式生成DTO结构

时间:2019-03-05 06:22:18

标签: postgresql go

我只是想知道是否有人与xo合作过。我有一个Postgres DB,里面有一堆桌子和东西。

我似乎无法使用struct从postgres表结构生成DTO xo

这个内置的xo template似乎创建了一个struct,我相信xo默认使用内置模板,但是我在运行时得到的一切< / p>

xo --verbose --suffix '.go' pgsql://myusername:mypass@localhost:myport/mydb?sslmode=disable -o internal/qo/models -p qo

是一堆与我的项目或数据库中的架构完全无关的文件。 Screenshot of one of the files and the entire list of generated files on the left

1 个答案:

答案 0 :(得分:0)

因此,根据我发现的情况,xo程序包的postgreSQL loader使用“ public”作为默认架构,在我的数据库中,名为“ public”的架构仅包含名为{{ 1}}和许多存储过程,从而产生了上面一组适当生成的代码。

使用schema_migrations(其中--schema <correct_schema_name>是将为其生成dto结构的模式)时,会生成正确的代码。

因此,正确的命令是:

<correct_schema_name>

gen.sh文件中还有一些设置也必须更改,例如类型信息(特别是默认值),以便生成具有正确字段类型的结构。

例如,时间戳的默认类型为xo --verbose --schema <correct_schema_name> --suffix '.go' pgsql://myusername:mypass@localhost:myport/mydb?sslmode=disable -o internal/qo/models -p qopq是PostgreSQL的Golang驱动程序),并且将在pq.NullTime文件中进行更改以设置适当的时间戳。默认类型。