Sqlite 如何从配置文件中获取路径
我想从配置文件中获取sqlite数据库的路径。我怎么能在围棋中做到这一点 这是我以前写过的代码:Sqlite 如何从配置文件中获取路径,sqlite,go,Sqlite,Go,我想从配置文件中获取sqlite数据库的路径。我怎么能在围棋中做到这一点 这是我以前写过的代码: database, _ := sql.Open("sqlite3", "C:\\Users\\username\\project\\source.db") 在这种情况下,我的路径是直接用代码“硬编码”的。我想设置一个变量,它从配置数据中获取路径。我的第一个建议是使用JSON文件而不是YAML文件进行配置,因为Go本身就支持它;您不需要使用任何外部软件包 type DBConfig struct {
database, _ := sql.Open("sqlite3", "C:\\Users\\username\\project\\source.db")
在这种情况下,我的路径是直接用代码“硬编码”的。我想设置一个变量,它从配置数据中获取路径。我的第一个建议是使用
JSON
文件而不是YAML
文件进行配置,因为Go本身就支持它;您不需要使用任何外部软件包
type DBConfig struct {
Path string `json:"path"`
}
func loadConfig(path string) (*DBConfig, error) {
data, err := ioutil.ReadFile(path)
if err != nil {
return nil, err
}
var conf DBConfig
err = json.Unmarshal(data, &conf)
if err != nil {
return nil, err
}
return &conf, nil
}
我的第二个建议是,将此配置文件的路径作为标志
传入。当您像这样运行应用程序时,可以提供一个标志:
$ go build . -o MyApp
$ ./MyApp --config=path/to/config/file
标志非常强大,允许您轻松配置应用程序,而无需更改太多代码。在Golang中使用标志很简单
var configPath = flag.String("config", "", "Path to file containing app config")
只需确保在main
函数的顶部添加flag.Parse
,即可访问它们
祝你好运 你的配置文件是什么格式的?可能是JSON还是XML、YAML?还是别的什么?@mkopriva我想和YAML一起做。我为它创建了一些模块(Viper和go yaml)。这两个软件包以不同的方式工作,因此了解您选择了哪一个非常重要,这样我们才能提供准确的解决方案。@mkopriva,好的,您能告诉我,我如何使用go yaml实现它吗?go对yaml也有很好的支持。没有理由使用JSON如果您喜欢YAML(我通常更喜欢YAML,或者更好的配置是TOML),当然,您应该选择最适合您的项目和最适合您的内容。但是为了简单起见,使用语言标准库中构建的内容通常比依赖第三方库更方便。