swift - 如何在不将密码放入 Vapor 3 的 configure.swift 的情况下配置 Fluent/MySQL 数据库连接?

标签 swift vapor

Vapor 3 documentation除了“向您的服务注册一个 DatabasesConfig 结构”之外,没有过多提及数据库配置。

教程(例如 this one)建议您在 App/configure.swift 文件中实现配置,如下所示:

let mysqlConfig = MySQLDatabaseConfig(
    hostname: "127.0.0.1",
    port: 3306,
    username: "root",
    password: "root",
    database: "mycooldb"
)
services.register(mysqlConfig)

但是我的 configure.swift 文件正在被 git 跟踪,我不想提交我的用户名和密码。

如何提供用于处理数据库连接的外部配置文件?

Vapor 的早期版本似乎使用了 JSON 配置文件。这个功能完全没有了吗?我在当前文档中找不到任何提及。

最佳答案

最流行的方法是使用环境变量。您可以在 Xcode 方案或终端中设置它们:

export DB_PASSWORD=root

然后在你的配置中获取它:

guard let password = Environment.get("DB_PASSWORD") else {
    throw Abort(.internalServerError)
}

关于swift - 如何在不将密码放入 Vapor 3 的 configure.swift 的情况下配置 Fluent/MySQL 数据库连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53839103/

相关文章:

swift - Firebase Remote Config/Analytics setUserProperty 条件不执行任何操作

ios - Facebook 在 ios 问题中使用 firebase 登录

ios - 如何将过滤结果数组映射到原始数组(具有值语义)?

swift - Vapor 3 - 如何在保存对象之前检查类似的电子邮件

swift - 如何使用 JWT for Google firebase 生成授权 token ?

swift - 服务器 Swift 与 mongodb 管理器单例

swift - 如何将 int 变量分配给请求参数?

ios - 编译构建失败时出现 xcode 错误

ios - 如何在 View 中的特定点添加 subview

Swift套件管理员-没有 list 错误