ent 基本使用十三 debug 模式

ent 生成的代碼client 包中包含了一個方便的方法Debug(), 記得昨天我爲了查看生成的sql 查詢經過配置mysql
啓用慢查詢,同時設置記錄慢查詢爲0,實際上client Debug 方法使用了builder 的模式,咱們經過Debug 方法
能夠直接就方便的輸出生成的sqlmysql

參考代碼

    if err := client.Debug().Schema.Create(ctx); err != nil {
        log.Fatalf("failed printing schema changes: %v", err)
    }

日誌效果

go run cmd/migration/main.go 
2019/10/15 11:03:07 driver.Tx(661af82b-dd17-4c45-b721-88118838ca8e): started
2019/10/15 11:03:07 Tx(661af82b-dd17-4c45-b721-88118838ca8e).Query: query=SHOW VARIABLES LIKE 'version' args=[]
2019/10/15 11:03:07 Tx(661af82b-dd17-4c45-b721-88118838ca8e).Query: query=SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE `TABLE_SCHEMA` = (SEL
ECT DATABASE()) AND `TABLE_NAME` = ? args=[groups]
2019/10/15 11:03:07 Tx(661af82b-dd17-4c45-b721-88118838ca8e).Exec: query=CREATE TABLE IF NOT EXISTS `groups`(`id` bigint AUTO_INCREMENT NOT NULL, `n
ame` varchar(255) NOT NULL, `admin_id` bigint NULL, PRIMARY KEY(`id`)) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin args=[]
2019/10/15 11:03:07 Tx(661af82b-dd17-4c45-b721-88118838ca8e).Query: query=SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE `TABLE_SCHEMA` = (SEL
ECT DATABASE()) AND `TABLE_NAME` = ? args=[pets]
2019/10/15 11:03:07 Tx(661af82b-dd17-4c45-b721-88118838ca8e).Exec: query=CREATE TABLE IF NOT EXISTS `pets`(`id` bigint AUTO_INCREMENT NOT NULL, `nam
e` varchar(255) NOT NULL, `owner_id` bigint NULL, PRIMARY KEY(`id`)) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin args=[]
2019/10/15 11:03:07 Tx(661af82b-dd17-4c45-b721-88118838ca8e).Query: query=SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE `TABLE_SCHEMA` = (SEL
......

參考資料

https://entgo.io/docs/getting-started/sql

相關文章
相關標籤/搜索