1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/xxjwxc-gormt

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README_zh_cn.md 10 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 02.12.2024 05:52 4493445

gorm-tools


Инструмент для преобразования базы данных MySQL в структуру Golang, который автоматически генерирует структуры Golang с использованием правил именования CamelCase. Поддерживает теги JSON.

Интерактивный режим

show

./gormt -g=true

Командный режим

show

./gormt -g=false

Установка

go get -u -v github.com/xxjwxc/gormt@master

или: Скачать

1. Настройка параметров по умолчанию с помощью файла конфигурации config.yml в текущем каталоге

Обратите внимание: последние настройки можно найти в MyIni.go или использовать инструмент командной строки для создания по умолчанию.

base:
    is_dev: false
out_dir: ./model  # Выходной каталог
url_tag: json # веб-тег (json, db (https://github.com/google/go-querystring))
language: Китайский  # Язык (English, Китайский)
db_tag: gorm # Тег базы данных (gorm, db)
simple: false # Простой вывод (по умолчанию не выводится тег gorm)
is_out_sql: false # Выводить ли исходную информацию SQL
is_out_func: true # Выводить ли быстрые функции
is_foreign_key: true # Экспорт внешних ключей
is_gui: false  # Отображать ли в режиме пользовательского интерфейса
is_table_name: false # Генерировать ли имена таблиц и столбцов напрямую
is_null_to_point: false # Устанавливать ли тип структуры как указатель при использовании 'DEFAULT NULL' в базе данных
is_web_tag: false
is_web_tag_pk_hidden: false
table_prefix: "" # Префикс таблицы
db_info:
    host : 127.0.0.1
    port : 3306
    username : root
    password : qwer
    database : oauth_db
    type: 0 # Тип базы данных: 0: mysql, 1: sqlite, 2: mssql
self_type_define: # Пользовательское сопоставление типов данных
    datetime: time.Time
    date: time.Time
out_file_name: "" # Имя файла настраиваемого вывода
web_tag_type: 0 # тип тега json 0: маленький верблюд 1: подчеркивание

2. Можно обновить параметры конфигурации с помощью инструмента командной строки

./gormt -H=127.0.0.1 -d=oauth_db -p=qwer -u=root --port=3306

Инструмент командной строки по умолчанию создаст файл config.yml, который будет находиться в том же каталоге, что и исполняемый файл gormt. Вы можете найти этот каталог, используя команду which gormt.

3. Просмотр справки

./gormt --help
or
./gormt -h

-------------------------------------------------------
Основан на инструментах gorm для преобразования баз данных MySQL в структуры Golang

Использование:
  main [флаги]

Флаги:
  -d, --database string   Имя базы данных
  -f, --foreign           Экспортировать ли внешние ключи
  -F, --fun               Экспортировать ли функции
  -g, --gui               Режим отображения пользовательского интерфейса
  -h, --help              Справка для main
  -H, --host string       Адрес базы данных.(обратите внимание, что -H пишется заглавными буквами)
  -o, --outdir string     Выходной каталог
  -p, --password string   Пароль.
      --port int          Номер порта (по умолчанию 3306)
  -s, --singular          Отключить множественное число имен таблиц
  -l, --url string        Веб-тег(json, url)
  -u, --user string       Имя пользователя.
  

4. Поддержка свойств, связанных с gorm

  • Комментарии к таблицам и полям базы данных
  • Вывод тегов JSON
  • Базовая модель gorm.Model Поддержка экспорта базовой модели gorm.Model>>>
  • PRIMARY_KEY Указывает столбец как первичный ключ
  • UNIQUE Указывает столбец как уникальный
  • NOT NULL Указывает столбец как не допускающий значения NULL
  • INDEX Создает индекс без имени или с именем, если несколько индексов имеют одно и то же имя, создается составной индекс
  • UNIQUE_INDEX Аналогично INDEX, но создает уникальный индекс
  • Поддержка атрибутов внешнего ключа Простой экспорт с внешним ключом>>>
  • Поддержка экспорта функций (включая: внешний ключ, связанные объекты, индексы и т.д.) Пример простого экспорта функций>>>
  • Поддерживает значения по умолчанию default

Вы можете обогатить типы данных сопоставления здесь def.

5. Примеры демонстрации

SQL:

CREATE TABLE `user_account_tbl` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `account` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `password` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `account_type` int(11) NOT NULL DEFAULT '0' COMMENT 'Тип учетной записи:0 мобильный телефон,1 электронная почта',
  `app_key` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT 'authbucket_oauth2_client таблица id',
  `user_info_tbl_id` int(11) NOT NULL,
  `reg_time` datetime DEFAULT NULL,
  `reg_ip` varchar(15) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `bundle_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
  `describ` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE KEY `account` (`account`) USING BTREE,
  KEY `user_info_id` (`user_info_tbl_id`) USING BTREE,
  CONSTRAINT

*Примечание: В запросе есть код на языке программирования Go, гиперссылки, специальные теги форматирования Markdown, HTML, YAML, JSON, PlantUML и другие. Они оставлены без перевода.* **Перевод текста на русский язык:**

**6. Поддержка функции экспорта (экспорт функций — это только вспомогательные функции gorm, полностью совместимые с вызовами gorm)**

// FetchByPrimaryKey primay или index получает уникальное содержимое func (obj *_UserAccountTblMgr) FetchByPrimaryKey(ID int) (result UserAccountTbl, err error) { err = obj.DB.Table(obj.GetTableName()).Where("id = ?", ID).Find(&result).Error if err == nil && obj.isRelated { { var info UserInfoTbl // информация о пользователе err = obj.DB.Table("user_info_tbl").Where("id = ?", result.UserInfoTblID).Find(&info).Error if err != nil { return } result.UserInfoTbl = info } }

return

}


**[Подробнее>>>](https://github.com/xxjwxc/gormt/tree/master/doc/func_cn.md)**

**[Пример вызова функции>>>](https://github.com/xxjwxc/gormt/blob/master/data/view/genfunc/genfunc_test.go)**

**7. Сборка**

make windows make linux make mac

или

go generate


**Примечание: Windows не поддерживает китайский язык по умолчанию. Режим ASCALL**
Переключите кодировку

CHCP 65001


**Комментарии к столбцам tag**

- Добавьте комментарий к столбцу, начинающийся с `@gorm default:'test'`, чтобы добавить комментарий.
- Например, `@gorm default:'test';->;<-:create` это содержание комментария, что означает, что значение по умолчанию равно «test», разрешено чтение, обновление и создание.
- Используйте `@fk tableName.columnName`, чтобы указать комментарий внешнего ключа, который указывает на столбец `tableName.columnName`.

**8. Планы на будущее**

- Добавить функции обновления и удаления.
- Оптимизация.

**9. Предоставление инструмента визуализации для Windows**

![Описание изображения](/image/gormt/1.png)

![Описание изображения](/image/gormt/2.jpg)

![Описание изображения](/image/gormt/3.jpg)

![Описание изображения](/image/gormt/4.jpg)

[Скачать](https://github.com/xxjwxc/gormt/releases/download/v0.3.8/v1.0.zip)

— **[Портал](https://xxjwxc.github.io/post/gormtools/)**

**График времени звёздочек**

[![Stargazers over time](https://starchart.cc/xxjwxc/gormt.svg)](https://starchart.cc/xxjwxc/gormt)

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/xxjwxc-gormt.git
git@api.gitlife.ru:oschina-mirror/xxjwxc-gormt.git
oschina-mirror
xxjwxc-gormt
xxjwxc-gormt
master