从项目的子文件夹中打开sqlite数据库文件。

huangapple go评论106阅读模式
英文:

Open sqlite db file from a project's subfolder

问题

我有这样的文件夹结构:

├── gorm.sqlite // 这个可以工作
├── main.go
├── simulator
   ├── data
      ├── gorm.sqlite // 这个无法工作
      └── profiles.go
   ├── driver
      ├── apis.go
      ├── client.go
      ├── routing-events.go
      └── websocket.go
   └── router.go

在我的 simulator/router.go 文件中:

func SetupConfig() {
    config := &driver.Config{}
    if db, err := gorm.Open(sqlite.Open("gorm.sqlite"), &gorm.Config{}); err != nil {
        panic(err)
    } else {
        config.Db = db
    }
    // etc
}

虽然 sqlite.Open("gorm.sqlite") 可以工作并访问项目主文件夹中的文件,但 sqlite.Open("/simulator/data/gorm.sqlite") 无法工作!它会抛出 unable to open database file: no such file or directory 的错误。我该如何访问子文件夹中的数据库文件?

英文:

I have this folder structure:

├── gorm.sqlite // this works
├── main.go
├── simulator
   ├── data
      ├── gorm.sqlite //this does not work
      └── profiles.go
   ├── driver
      ├── apis.go
      ├── client.go
      ├── routing-events.go
      └── websocket.go
   └── router.go

In my simulator/router.go:

func SetupConfig() {
	config := &driver.Config{}
	if db, err := gorm.Open(sqlite.Open("gorm.sqlite"), &gorm.Config{}); err != nil {
		panic(err)
	} else {
		config.Db = db
	}
    //etc
}

While sqlite.Open("gorm.sqlite") works and access the file in the project main folder, sqlite.Open("/simulator/data/gorm.sqlite") does not work! it panics unable to open database file: no such file or directory.
How can I access a db file in a sub folder.

答案1

得分: 2

尝试这种方式:

	db, err := gorm.Open(sqlite.Open("./simulator/data/gorm.sqlite"), &gorm.Config{})
英文:

Try this way

	db, err := gorm.Open(sqlite.Open("./simulator/data/gorm.sqlite"), &gorm.Config{})

huangapple
  • 本文由 发表于 2022年8月7日 14:15:31
  • 转载请务必保留本文链接:https://go.coder-hub.com/73265296.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定