はじめに
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)
おわりに
パッケージの公式ドキュメントも読んで型や引数を調べるようにしていきます
参考