Golang + sqlite

445 views
Skip to first unread message

Alexej Bobylev

unread,
Jan 18, 2017, 4:19:36 AM1/18/17
to Golang Russian
Доброго времени суток господа!

 Недавно пытался разобраться как же все таки законнектится с sqlite базой из программы на Go .
 Попытка как то не удалась....
   
   Рекомендуют импортировать пакет  _ "github.com/mattn/go-sqlite3" А как это правильно сделать под windows ?

import (
    "database/sql"
    "fmt"
    "time"
    _ "github.com/mattn/go-sqlite3"
)
Может быть кто нибудь уже сталкивался с подобным ?

Stanislav N. aka pztrn

unread,
Jan 18, 2017, 5:23:10 AM1/18/17
to gola...@googlegroups.com

Предлагаю как пример:

 

https://github.com/pztrn/urtrator/blob/master/database/database_object.go

--

With best regards,

Stanislav N. aka pztrn

Jabber: pz...@pztrn.name

E-Mail: pz...@pztrn.name

Blog: http://pztrn.name && http://en.pztrn.name

Telegram: @pztrn

Key ID: B3E1F07E

--
Вы получили это сообщение, поскольку подписаны на группу "Golang Russian".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес golang-ru+...@googlegroups.com.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.



Alexej Bobylev

unread,
Jan 19, 2017, 12:42:23 AM1/19/17
to Golang Russian
Спасибо за пример. Внимательно рассмотрев его я заметил вот такой код:
 
import (
// stdlib
//"database/sql"
"fmt"
"path"
"runtime"
"strconv"
// local
"github.com/pztrn/urtrator/configuration"
"github.com/pztrn/urtrator/datamodels"
// Other
"github.com/jmoiron/sqlx"
_ "github.com/mattn/go-sqlite3" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Это ссылка на сайт в сети откуда запрашивают пакет go-sqlite3. Это сработает в Linux-е Но в виндувсе все иначе ОН (windows) ищет локальный путь которого конечно же нет. Я скачал этот пакет и выложил его как локальный на диск С: - все бы ничего но в самом пакете в файлах .go есть множество глобальных ссылок типа _ "github.com/mattn/go-sqlite3" их давольно много и если я хочу воспользоваться этим пакетом то я должен руками все их исправить на локальные ?! Мне кажется это несколько не рациональный путь .... а если этих библиотек много ...? Неужели нет библиотеки для Windows ?
)
 

Alexey “AlekSi” Palazhchenko

unread,
Jan 19, 2017, 2:16:04 AM1/19/17
to gola...@googlegroups.com
Привет,

> _ "github.com/mattn/go-sqlite3
> "
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> Это ссылка на сайт в сети откуда запрашивают пакет go-sqlite3. Это сработает в Linux-е Но в виндувсе все иначе ОН (windows) ищет локальный путь которого конечно же нет.

Это import path. Он похож, но не идентичен, каталогу на диске.

Вы настроили GOPATH?
https://golang.org/doc/install#testing
https://golang.org/doc/code.html

–-–
Алексей «AlekSi» Палажченко

Alexej Bobylev

unread,
Jan 19, 2017, 3:10:47 AM1/19/17
to Golang Russian

   Настройки GOPATH локальные.
     GOPATH  = C:\Go\bin
     GOROOT = C:\Go\
     Path = C:\Go\;C:\Go\src\;C:\Go\bin;C:\Go\bin\bin
      


четверг, 19 января 2017 г., 14:16:04 UTC+7 пользователь Alexey Palazhchenko написал:

Alexey “AlekSi” Palazhchenko

unread,
Jan 19, 2017, 5:20:48 AM1/19/17
to gola...@googlegroups.com
> Настройки GOPATH локальные.
> GOPATH = C:\Go\bin
> GOROOT = C:\Go\
> Path = C:\Go\;C:\Go\src\;C:\Go\bin;C:\Go\bin\bin

Это ерунда какая-то. Прочитайте эти две ссылки.

Stanislav N. aka pztrn

unread,
Jan 19, 2017, 8:25:07 AM1/19/17
to gola...@googlegroups.com

Настройте GOPATH. И почитайте про отличие GOPATH от GOROOT.

 

Hint: первый указывает на воркспейс, где Go собирает сторонние пакеты. Второй указывает на место установки Go и стандартных пакетов.

 

И да - urtrator собирается под всеми платформами, где работает Go, я проверял :) Ну или как минимум под Win/Lin/macOS/FreeBSD.

--

With best regards,

Stanislav N. aka pztrn

Jabber: pz...@pztrn.name

E-Mail: pz...@pztrn.name

Blog: http://pztrn.name && http://en.pztrn.name

Telegram: @pztrn

Key ID: B3E1F07E

--

kirill.w...@gmail.com

unread,
Feb 15, 2017, 11:17:32 AM2/15/17
to Golang Russian
Под windows обычного импорта мало, пакет go-sqlite3 для сборки драйвера еще требует gcc. Смотрите вывод в консоли.

среда, 18 января 2017 г., 12:19:36 UTC+3 пользователь Alexej Bobylev написал:

Evgeniy Solomanidin

unread,
Feb 15, 2017, 11:25:34 AM2/15/17
to Golang Russian
Для загрузки пакетов из репозиториев (ака ГитХаб, ГитЛаб etc) используйте go get (например  go get github.com/mattn/go-sqlite3) и все у вас будет работать. Но для sqlite действительно нужен gcc для сборки, так что под win возможно сразу не соберется.
Reply all
Reply to author
Forward
0 new messages