OpenSQLiteDBAsGorp opens a sqlite database an wrapped it in gorp.DbMap.
(dbFile, mode string, maxOpen, maxIdle int)
| 20 | |
| 21 | // OpenSQLiteDBAsGorp opens a sqlite database an wrapped it in gorp.DbMap. |
| 22 | func OpenSQLiteDBAsGorp(dbFile, mode string, maxOpen, maxIdle int) (db *gorp.DbMap, err error) { |
| 23 | dsn := fmt.Sprintf("%s?_journal=WAL&mode=%s", dbFile, mode) |
| 24 | underdb, err := sql.Open("sqlite3", dsn) |
| 25 | if err != nil { |
| 26 | return nil, errors.Wrapf(err, "unable to open database %q", dsn) |
| 27 | } |
| 28 | underdb.SetMaxOpenConns(maxOpen) |
| 29 | underdb.SetMaxIdleConns(maxIdle) |
| 30 | |
| 31 | if err := underdb.Ping(); err != nil { |
| 32 | return nil, errors.Wrapf(err, "ping to database %q failed", dsn) |
| 33 | } |
| 34 | |
| 35 | db = &gorp.DbMap{ |
| 36 | Db: underdb, |
| 37 | Dialect: gorp.SqliteDialect{}, |
| 38 | } |
| 39 | return db, nil |
| 40 | } |
| 41 | |
| 42 | func initChainDBConnection(dbFile string) (err error) { |
| 43 | chaindb, err = OpenSQLiteDBAsGorp(dbFile, "ro", 100, 30) |