• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Golang pg.Connect函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Golang中github.com/housinganywhere/pg.Connect函数的典型用法代码示例。如果您正苦于以下问题:Golang Connect函数的具体用法?Golang Connect怎么用?Golang Connect使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了Connect函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。

示例1: BenchmarkModelHasMany2ManyGopg

func BenchmarkModelHasMany2ManyGopg(b *testing.B) {
	seedDB()

	db := pg.Connect(pgOptions())
	defer db.Close()

	b.ResetTimer()
	b.RunParallel(func(pb *testing.PB) {
		for pb.Next() {
			var books []Book
			err := db.Model(&books).
				Columns("book.*", "Genres").
				Limit(100).
				Select()

			if err != nil {
				b.Fatal(err)
			}

			if len(books) != 100 {
				b.Fatalf("got %d, wanted 100", len(books))
			}
			for _, book := range books {
				if len(book.Genres) != 10 {
					b.Fatalf("got %d, wanted 10", len(book.Genres))
				}
			}
		}
	})
}
开发者ID:housinganywhere,项目名称:pg,代码行数:30,代码来源:bench_test.go


示例2: BenchmarkExecWithError

func BenchmarkExecWithError(b *testing.B) {
	db := pg.Connect(pgOptions())
	defer db.Close()

	_, err := db.Exec(
		`CREATE TABLE exec_with_error_test(id bigint PRIMARY KEY, name varchar(500))`)
	if err != nil {
		b.Fatal(err)
	}

	_, err = db.Exec(`
		INSERT INTO exec_with_error_test(id, name) VALUES(?, ?)
	`, 1, "hello world")
	if err != nil {
		b.Fatal(err)
	}
	defer db.Exec(`DROP TABLE exec_with_error_test`)

	b.ResetTimer()

	b.RunParallel(func(pb *testing.PB) {
		for pb.Next() {
			_, err := db.Exec(`INSERT INTO exec_with_error_test(id) VALUES(?)`, 1)
			if err == nil {
				b.Fatalf("got nil error, expected IntegrityError")
			} else if _, ok := err.(*pg.IntegrityError); !ok {
				b.Fatalf("got " + err.Error() + ", expected IntegrityError")
			}
		}
	})
}
开发者ID:housinganywhere,项目名称:pg,代码行数:31,代码来源:bench_test.go


示例3: TestStatementTimeout

func TestStatementTimeout(t *testing.T) {
	opt := pgOptions()
	opt.Params = map[string]interface{}{
		"statement_timeout": 1000,
	}
	db := pg.Connect(opt)
	defer db.Close()

	_, err := db.Exec("SELECT pg_sleep(60)")
	if err == nil {
		t.Fatalf("err is nil")
	}
	if err.Error() != "ERROR #57014 canceling statement due to statement timeout: " {
		t.Fatalf("got %q", err.Error())
	}

	if db.Pool().Len() != 1 || db.Pool().FreeLen() != 1 {
		t.Fatalf("pool is empty")
	}

	err = eventually(func() error {
		return verifyNoActivity(db)
	}, 10*time.Second)
	if err != nil {
		t.Fatal(err)
	}
}
开发者ID:housinganywhere,项目名称:pg,代码行数:27,代码来源:pool_test.go


示例4: TestCancelRequestOnTimeout

func TestCancelRequestOnTimeout(t *testing.T) {
	opt := pgOptions()
	opt.ReadTimeout = time.Second
	db := pg.Connect(opt)
	defer db.Close()

	_, err := db.Exec("SELECT pg_sleep(60)")
	if err == nil {
		t.Fatalf("err is nil")
	}
	neterr, ok := err.(net.Error)
	if !ok {
		t.Fatalf("got %v, expected net.Error", err)
	}
	if !neterr.Timeout() {
		t.Fatalf("got %v, expected timeout", err)
	}

	if db.Pool().FreeLen() != 1 {
		t.Fatalf("len is %d", db.Pool().FreeLen())
	}
	if db.Pool().Len() != 1 {
		t.Fatalf("size is %d", db.Pool().Len())
	}

	err = eventually(func() error {
		return verifyNoActivity(db)
	}, 10*time.Second)
	if err != nil {
		t.Fatal(err)
	}
}
开发者ID:housinganywhere,项目名称:pg,代码行数:32,代码来源:pool_test.go


示例5: Example_json

func Example_json() {
	db := pg.Connect(&pg.Options{
		User: "postgres",
	})
	defer db.Close()

	_, err := db.Exec(`CREATE TEMP TABLE items (id serial, data json)`)
	if err != nil {
		panic(err)
	}

	item1 := Item{
		Id:   1,
		Data: map[string]interface{}{"hello": "world"},
	}
	if err := db.Create(&item1); err != nil {
		panic(err)
	}

	var item Item
	err = db.Model(&item).Where("id = ?", 1).Select()
	if err != nil {
		panic(err)
	}
	fmt.Println(item)
	// Output: {1 map[hello:world]}
}
开发者ID:housinganywhere,项目名称:pg,代码行数:27,代码来源:example_json_test.go


示例6: ExampleConnect

func ExampleConnect() {
	db := pg.Connect(&pg.Options{
		User: "postgres",
	})
	err := db.Close()
	fmt.Println(err)
	// Output: <nil>
}
开发者ID:housinganywhere,项目名称:pg,代码行数:8,代码来源:example_test.go


示例7: SetUpTest

func (t *ListenerTest) SetUpTest(c *C) {
	opt := pgOptions()
	opt.PoolSize = 2
	opt.PoolTimeout = time.Second
	t.db = pg.Connect(opt)

	ln, err := t.db.Listen("test_channel")
	c.Assert(err, IsNil)
	t.ln = ln
}
开发者ID:housinganywhere,项目名称:pg,代码行数:10,代码来源:listener_test.go


示例8: TestUnixSocket

func TestUnixSocket(t *testing.T) {
	opt := pgOptions()
	opt.Network = "unix"
	opt.Addr = "/var/run/postgresql/.s.PGSQL.5432"
	db := pg.Connect(opt)
	defer db.Close()

	_, err := db.Exec("SELECT 'test_unix_socket'")
	if err != nil {
		t.Fatal(err)
	}
}
开发者ID:housinganywhere,项目名称:pg,代码行数:12,代码来源:main_test.go


示例9: BenchmarkQueryRow

func BenchmarkQueryRow(b *testing.B) {
	db := pg.Connect(pgOptions())
	defer db.Close()

	b.ResetTimer()

	for i := 0; i < b.N; i++ {
		var dst numLoader
		_, err := db.QueryOne(&dst, `SELECT ?::bigint AS num`, 1)
		if err != nil {
			b.Fatal(err)
		}
		if dst.Num != 1 {
			b.Fatalf("got %d, wanted 1", dst.Num)
		}
	}
}
开发者ID:housinganywhere,项目名称:pg,代码行数:17,代码来源:bench_test.go


示例10: BenchmarkQueryRowsGopgDiscard

func BenchmarkQueryRowsGopgDiscard(b *testing.B) {
	seedDB()

	db := pg.Connect(pgOptions())
	defer db.Close()

	b.ResetTimer()

	b.RunParallel(func(pb *testing.PB) {
		for pb.Next() {
			_, err := db.Query(pg.Discard, `SELECT * FROM records LIMIT 100`)
			if err != nil {
				b.Fatal(err)
			}
		}
	})
}
开发者ID:housinganywhere,项目名称:pg,代码行数:17,代码来源:bench_test.go


示例11: BenchmarkQueryRowScan

func BenchmarkQueryRowScan(b *testing.B) {
	db := pg.Connect(pgOptions())
	defer db.Close()

	b.ResetTimer()

	b.RunParallel(func(pb *testing.PB) {
		for pb.Next() {
			var n int64
			_, err := db.QueryOne(pg.Scan(&n), `SELECT ? AS num`, 1)
			if err != nil {
				b.Fatal(err)
			}
			if n != 1 {
				b.Fatalf("got %d, wanted 1", n)
			}
		}
	})
}
开发者ID:housinganywhere,项目名称:pg,代码行数:19,代码来源:bench_test.go


示例12: connectDB

func connectDB() *pg.DB {
	db := pg.Connect(&pg.Options{
		User: "postgres",
	})

	err := createTestSchema(db)
	if err != nil {
		panic(err)
	}

	err = db.Create(&Book{
		Title:     "book 1",
		AuthorID:  10,
		EditorID:  11,
		CreatedAt: time.Now(),
	})
	if err != nil {
		panic(err)
	}

	err = db.Create(&Book{
		Title:     "book 2",
		AuthorID:  10,
		EditorID:  12,
		CreatedAt: time.Now(),
	})
	if err != nil {
		panic(err)
	}

	err = db.Create(&Book{
		Title:     "book 3",
		AuthorID:  11,
		EditorID:  11,
		CreatedAt: time.Now(),
	})
	if err != nil {
		panic(err)
	}

	return db
}
开发者ID:housinganywhere,项目名称:pg,代码行数:42,代码来源:example_test.go


示例13: BenchmarkQueryRowsGopgORM

func BenchmarkQueryRowsGopgORM(b *testing.B) {
	seedDB()

	db := pg.Connect(pgOptions())
	defer db.Close()

	b.ResetTimer()

	b.RunParallel(func(pb *testing.PB) {
		for pb.Next() {
			var rs []Record
			err := db.Model(&rs).Limit(100).Select()
			if err != nil {
				b.Fatal(err)
			}
			if len(rs) != 100 {
				b.Fatalf("got %d, wanted 100", len(rs))
			}
		}
	})
}
开发者ID:housinganywhere,项目名称:pg,代码行数:21,代码来源:bench_test.go


示例14: BenchmarkQueryRowsGopgReflect

func BenchmarkQueryRowsGopgReflect(b *testing.B) {
	seedDB()

	db := pg.Connect(pgOptions())
	defer db.Close()

	b.ResetTimer()

	b.RunParallel(func(pb *testing.PB) {
		for pb.Next() {
			var rs []Record
			_, err := db.Query(&rs, `SELECT * FROM records LIMIT 100`)
			if err != nil {
				b.Fatal(err)
			}
			if len(rs) != 100 {
				b.Fatalf("got %d, wanted 100", len(rs))
			}
		}
	})
}
开发者ID:housinganywhere,项目名称:pg,代码行数:21,代码来源:bench_test.go


示例15: BenchmarkExec

func BenchmarkExec(b *testing.B) {
	db := pg.Connect(pgOptions())
	defer db.Close()

	_, err := db.Exec(
		`CREATE TABLE exec_test(id bigint, name varchar(500))`)
	if err != nil {
		b.Fatal(err)
	}
	defer db.Exec(`DROP TABLE exec_test`)

	b.ResetTimer()

	b.RunParallel(func(pb *testing.PB) {
		for pb.Next() {
			_, err := db.Exec(`INSERT INTO exec_test(id, name) VALUES(?, ?)`, 1, "hello world")
			if err != nil {
				b.Fatal(err)
			}
		}
	})
}
开发者ID:housinganywhere,项目名称:pg,代码行数:22,代码来源:bench_test.go


示例16: BenchmarkQueryRowStmtScan

func BenchmarkQueryRowStmtScan(b *testing.B) {
	db := pg.Connect(pgOptions())
	defer db.Close()

	stmt, err := db.Prepare(`SELECT $1::bigint AS num`)
	if err != nil {
		b.Fatal(err)
	}
	defer stmt.Close()

	b.ResetTimer()

	for i := 0; i < b.N; i++ {
		var n int64
		_, err := stmt.QueryOne(pg.Scan(&n), 1)
		if err != nil {
			b.Fatal(err)
		}
		if n != 1 {
			b.Fatalf("got %d, wanted 1", n)
		}
	}
}
开发者ID:housinganywhere,项目名称:pg,代码行数:23,代码来源:bench_test.go


示例17: BenchmarkExecStmt

func BenchmarkExecStmt(b *testing.B) {
	db := pg.Connect(pgOptions())
	defer db.Close()

	_, err := db.Exec(`CREATE TEMP TABLE statement_exec(id bigint, name varchar(500))`)
	if err != nil {
		b.Fatal(err)
	}

	stmt, err := db.Prepare(`INSERT INTO statement_exec(id, name) VALUES($1, $2)`)
	if err != nil {
		b.Fatal(err)
	}
	defer stmt.Close()

	b.ResetTimer()

	for i := 0; i < b.N; i++ {
		_, err := stmt.Exec(1, "hello world")
		if err != nil {
			b.Fatal(err)
		}
	}
}
开发者ID:housinganywhere,项目名称:pg,代码行数:24,代码来源:bench_test.go


示例18: init

func init() {
	db = pg.Connect(&pg.Options{
		User: "postgres",
	})
}
开发者ID:housinganywhere,项目名称:pg,代码行数:5,代码来源:example_test.go


示例19: SetUpTest

func (t *DBTest) SetUpTest(c *C) {
	t.db = pg.Connect(pgOptions())
}
开发者ID:housinganywhere,项目名称:pg,代码行数:3,代码来源:main_test.go


示例20: Value

		PoolTimeout:  30 * time.Second,
		IdleTimeout:  time.Second, // be aggressive in tests
	}
}

type valuerError string

func (e valuerError) Value() (driver.Value, error) {
	return nil, errors.New(string(e))
}

var _ = Describe("driver.Valuer", func() {
	var db *pg.DB

	BeforeEach(func() {
		db = pg.Connect(pgOptions())
	})

	AfterEach(func() {
		Expect(db.Close()).NotTo(HaveOccurred())
	})

	It("handles driver.Valuer error", func() {
		_, err := db.Exec("SELECT ?", valuerError("driver.Valuer error"))
		Expect(err).To(MatchError("driver.Valuer error"))
	})
})

var _ = Describe("Collection", func() {
	var db *pg.DB
开发者ID:housinganywhere,项目名称:pg,代码行数:30,代码来源:db_test.go



注:本文中的github.com/housinganywhere/pg.Connect函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Golang pool.Buffer类代码示例发布时间:2022-05-28
下一篇:
Golang testutil.TestParse函数代码示例发布时间:2022-05-28
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap