LoginSignup
0
0

More than 1 year has passed since last update.

【Go+gorm】sql.Openとmysql.Openの違い

Posted at

はじめに

gorm.Openの第一引数にデータベース接続情報をもったsql.Openの返り値を渡せないことが気になりました。
正しくはmysql.Openを渡してあげることになるのですが、名称も似ていてよく分からなかったので調べてまとめてみます。

gorm.Open(mysql.Open(dbConn), &gorm.Config{})

結論

そもそも返り値の型や数が違いました

sql.Openとmysql.Openの違い

sqlパッケージの公式ドキュメントでは以下のように定義されていました

sql.Open
func Open(driverName, dataSourceName string) (*DB, error)

一方、mysqlパッケージの公式ドキュメントでは以下のように定義されていました

mysql.Open
func Open(dsn string) gorm.Dialector

また、gormパッケージの公式ドキュメントでは以下のように定義されていました
第一引数のDialector型はmysql.Openの返り値であるgorm.Dialector型で満たすことができます

func Open(dialector Dialector, opts ...Option) (db *DB, err error)

おわりに

パッケージの公式ドキュメントも読んで型や引数を調べるようにしていきます

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0