我有使用golang-revel的项目,在我的项目中,我需要连接到2个数据库.目前,我可以一个一个地迁移数据库,但如果这个项目越来越大,我需要能够迁移所有数据库.有没有办法在app.conf中动态获取数据库名称?

# Settings for database used in GORM Framework
db.automigrate = false
db.driver      = mysql
db.username    = root
db.password    =
db.dbname      = root_database
db.dbname.otherdatabase = other_database_name
db.companies       = other_companies
db.charset     = utf8
db.parseTime   = True
db.loc         =
db.log = true

我可以通过获取带有Dbname = r.Config.StringDefault("db.dbname", "")的db.dbname来进行迁移

但我如何才能动态获取db.dbname.otherdatabase个或更多的数据库,以便它可以抓取future 所有的数据库?

推荐答案

您需要用分隔符将所有名称存储在一个变量中,为简单起见,只需使用逗号

db.names = db1,db2,db3,db4

然后用,乘以Split函数

temp_db := strings.Split(r.Config.StringDefault("db.names", ""), ",")

r.Config.StringDefault功能见here

Go相关问答推荐

macOS上GoLand 2023.3.4中的代码导航

难以为多个平台添加Go Bazel构建选项

如何使用我的 struct 化日志(log)记录格式使人panic ?

无法在32位计算机上运行Golang应用程序

从MySQL/GO表获取行数据

Golang在不写入磁盘的情况下为jpeg图像生成一致的哈希

Go Template 动态获取变量

在 Go 中解组编号的 XML 标签

Opensearch 错误 ping 弹性服务器:由未知权威签署的 x509 证书

对 CSV 进行单元测试失败

Golang - POST 失败(NoSurf CSRF)

Gremlin-Go:树步骤不可序列化

如何将元素从一个切片移动到另一个切片

如何在时间范围内规范化数组的元素?

Golang并发写入多个文件

使用 AppID 在 Windows 中启动应用程序并获取 pid

跟踪长时间运行的任务的进度 - 正确的方法

如何发送带有登录数据的 GET 请求并将 cookie 数据保存到 txt 文件?

有没有办法停止long blocking 函数?

如何在程序退出时使用 golang 删除文件?