Генерация структур DTO из схем таблиц postgres DB с использованием xo - PullRequest
0 голосов
/ 05 марта 2019

Мне просто интересно, работал ли кто-нибудь с xo .У меня есть БД Postgres, с кучей таблиц и прочего.

Я не могу сгенерировать DTO struct s из структур таблиц postgres, используя xo.

Этот встроенный xo шаблон , кажется, создает struct, и я считаю, xo использует встроенные шаблоны по умолчанию, но все, что я получаю, когда запускаю

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 голосов
/ 07 марта 2019

Итак, из того, что я нашел, загрузчик пакета xo postgreSQL *1003* использует "public" в качестве схемы по умолчанию, а в моей БД схема с именем "public" имеет только таблицу с именем schema_migrations и множество хранимых процедур, что приводит к приведенному выше набору надлежащим образом сгенерированного кода.

При использовании --schema <correct_schema_name>, где <correct_schema_name> - схема, для которой должны быть сгенерированы структуры dto, правильнаягенерируется код.

Итак, правильная команда:

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

В gen.sh также есть пара настроек.файл, который также должен быть изменен, такой как информация о типе (в частности, значения по умолчанию), чтобы генерировать структуры с правильными типами полей.

Например, тип по умолчанию для отметок времени: pq.NullTime ( pq - это драйвер Golang для PostgreSQL), и его необходимо изменить в файле gen.sh, чтобы установитьправильный тип по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...