@proGO

Страница 1058 из 1674
Anatoliy
17.12.2017
10:53:08
http://prntscr.com/holovp

Alexander
17.12.2017
10:53:26
это постгрес и макарон
omitempty производит проверку по минимальному значению, пропробуй проверить LastLogin.isZero() что возвращает

Anatoliy
17.12.2017
10:53:29
вот тут по идее last_login не должен приходить в ответе, а приходит

Savely
17.12.2017
10:53:38
http://prntscr.com/holovp
ну у меня на rethinkdb ништяк всё, всегда пустыми инициализируется

Google
Savely
17.12.2017
10:53:46
может баг либы какой-то

но вряд ли

Alexander
17.12.2017
10:54:07
Savely
17.12.2017
10:54:28
что за rethinkdb?
база такая

Anatoliy
17.12.2017
10:54:40
у меня там null а не 0

Alexander
17.12.2017
10:55:04
тогда сделай LastLogin *time.Time

Savely
17.12.2017
10:55:07
time.Time изначально 0 и под omitempty не вернется
так всё изнально ноль, а строка пустая

Alexander
17.12.2017
10:55:38
у меня там null а не 0
ты какую orm используешь?

Anatoliy
17.12.2017
10:56:50
fmt.Println(user.LastLogin.IsZero()) // true

Savely
17.12.2017
10:57:08
IsZero() это не nil

Anatoliy
17.12.2017
10:57:15
ты какую orm используешь?
не orm, просто "database/sql"

Alexander
17.12.2017
10:57:22
http://jinzhu.me/gorm/

Google
Savely
17.12.2017
10:57:30
тебе правильно сказали, используй *time.Time

Anatoliy
17.12.2017
10:58:27
Savely
17.12.2017
10:58:41
в этом случае паника)
ну потому что просто звездочку поставить это не вариант))

надо исправить

Alexander
17.12.2017
10:58:50
fmt.Println(user.LastLogin.IsZero()) // true
хм... странно, либо *time.Time тогда, если значение в БД может иметь NULL, либо свой класс времени (я отдаю в json время всегда числом, так как с ним удобнее работать)

Anatoliy
17.12.2017
10:59:12
надо исправить
что именно исправить?

fmt.Println(user.LastLogin.IsZero()) вот тут паника пришла

Alexander
17.12.2017
11:00:03
fmt.Println(user.LastLogin.IsZero()) вот тут паника пришла
теперь это поле ты можешь проверять на сравнение с nil а дальше получать значение, к примеру

Anatoliy
17.12.2017
11:01:33
в общем почему паника понятно, но по идее это не правильный вариант, т.к. куча проблем из за этого может возникнуть

Alexander
17.12.2017
11:02:08
Anatoliy
17.12.2017
11:02:22
но - лишняя проверка... в общем буду думать. gorm кстати гляну, но смущает что там с октября ничего нет по изменениям https://github.com/go-xorm/xorm здесь для меня смотрится более привлекательным...

Alexander
17.12.2017
11:04:06
когда дебажил проверка на != nil не проходит, хотя значения дебаггер говорит нет

посмотрел в сурсах json пакета, там не проверяется time.Time на пустоту при флаге omitempty

Alexander
17.12.2017
11:10:26
а должно?
просто тогда оно всегда будет попадать в Marshal

так как это структура

Google
Alexander
17.12.2017
11:10:54
флаг omitempty не работает для структур

Anatoliy
17.12.2017
11:11:33
ну у меня щас оно все выглядит вот так: http://prntscr.com/holtwb и ничего не падает

Alexander
17.12.2017
11:12:20
Anatoliy
17.12.2017
11:12:55
ну это да, это я уже понял

.
17.12.2017
11:29:30
Привет, посоветуйте хорошую либу для парсинга user agent. Пока я только mssola/user_agent вижу более-менее.

.
17.12.2017
12:11:54
Да, не очень. Пришлось в итоге на ноде эту API делать.

Alexander
17.12.2017
12:13:16
.
17.12.2017
12:13:21
ua-parser-js

Alexander
17.12.2017
12:14:27
ua-parser-js
оно https://github.com/faisalman/ua-parser-js?

.
17.12.2017
12:14:32
Да

Alexander
17.12.2017
12:14:59
надо бы на го повторить))) в своем фреймворке

Anatoliy
17.12.2017
12:16:40
Народ, а хорошую либу для логов и отправки их в эластик/прометеус и прочее может кто посоветовать?)

в общем нужно собирать логи и метрики

Lucky
17.12.2017
12:17:49
Так прометеус этим сам и занимается, не?

Anatoliy
17.12.2017
12:19:25
Так прометеус этим сам и занимается, не?
может сам, но для этого надо ему выдавать страницу вида /metrics, но для чео-то более срочного можно самому ему отправлять данные, я хочу и то и другое использовать

Aleksandr
17.12.2017
15:44:07
Я на logrus плюс прометеус сделал логирование, полет нормальный

Mykyta
17.12.2017
16:28:06
флаг omitempty не работает для структур
Omitempty опускает только nil значения

Alexey
17.12.2017
16:32:42
Не только. Любые zero values

Google
Anatoliy
17.12.2017
18:19:22
Может кто подсказать. я щас смотрю на xorm, там можно делать запросы вида has, err := engine.Get(&user) // SELECT * FROM user LIMIT 1 при этом я так понимаю имя структуры это имя таблицы... так? а как со схемами там быть?

если pgsql пользуешь - там же еще схемы есть, как с ними ?

Aleksandr
17.12.2017
18:23:37
Доку прочёл?

Anatoliy
17.12.2017
18:23:45
еще не все

Aleksandr
17.12.2017
18:24:15
На вступлении завис?

Anatoliy
17.12.2017
18:25:29
угу, не очень хорошая дока как по мне

Aleksandr
17.12.2017
18:27:00
Обычная. На твой вопрос ответы есть

Admin
ERROR: S client not available

Anatoliy
17.12.2017
18:27:52
https://github.com/go-xorm/xorm/blob/master/examples/sync.go хотя вот пример даже есть с постгресом

но вот схем там нет

Aleksandr
17.12.2017
18:29:51
Что за схемы? Что ты имеешь в виду?

Anatoliy
17.12.2017
18:33:08
мне для запроса в постгрес надо указать базу данных, схему, и таблицу, тамблица и схема указывается в самом запросе, ведь схем может быть несколько в БД

Aleksandr
17.12.2017
18:33:59
Ну и? Проблема в чем?

Anatoliy
17.12.2017
18:35:09
если у меня запрос выглядит вот так, откуда берутся схема и таблица? я могу подозревать что имя таблицы берется как user, но схема тогда откуда? has, err := engine.Get(&user) // SELECT * FROM user LIMIT 1

Sergey
17.12.2017
18:36:26
Чо ты делаешь....

Anatoliy
17.12.2017
18:37:40
видимо не то читаю, или не там

Sergey
17.12.2017
18:38:09
видимо не то читаю, или не там
Надо на офф сайте в разделе документация

И почему не gorm?

Anatoliy
17.12.2017
18:41:09
И почему не gorm?
если он хорош - то можно и его, а так xorm использует gogs, плюс у gorm с октября нет изменений

Google
Anatoliy
17.12.2017
18:41:52
а щас смотрю еще раз доку - и не вижу про схемы пока

Alexey
17.12.2017
18:45:08
А, это не горм

Но, наверно, есть похожее что-нибудь.

Anatoliy
17.12.2017
18:46:09
вот не вижу пока

может реально туплю

вот такое там есть func (session *Session) Table(tableNameOrBean interface{}) *Session {

Alexander
17.12.2017
18:46:38
Omitempty опускает только nil значения
и начальные значения базовых типов (int, bool, float...)

Alexey
17.12.2017
18:47:13
может реально туплю
Ну должен быть метод, гугли xorm custom tablename

Alexander
17.12.2017
18:53:29
Anatoliy
17.12.2017
18:53:41
эм... а кто сообщения чистит?

или мне показалось?

Alexander
17.12.2017
18:53:58
да я чет тупанул

)))

Anatoliy
17.12.2017
18:55:20
engine.Table("scheme.user").Get(&user) так не пробовал?
пробовал, работает, но в примерах есть запросы вида affected, err := engine.Insert(&user) // INSERT INTO struct () values ()

и мне очень интересно как тогда работать с ними, просто ручками прописывать все каждый раз я тогда и без ORM могу

Alexander
17.12.2017
18:56:05
я мельком глянул XORM и ничего что ты хочешь там пока не увидел

Anatoliy
17.12.2017
18:56:22
has, err := engine.Get(&user) // SELECT * FROM user LIMIT 1 вот такое я как могу сделать с учетом схемы?

Alexander
17.12.2017
18:56:50
только указать схему принудительно перед именем таблицы

Страница 1058 из 1674