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

时间:2018-12-18 18:30:35

标签: 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)

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

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

似乎Vapor的早期版本使用JSON配置文件。此功能是否已完全消失?我在当前文档中找不到任何提及。

2 个答案:

答案 0 :(得分:4)

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

export DB_PASSWORD=root

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

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

答案 1 :(得分:3)

您可以添加一个环境变量,然后像这样加载它:

Environment.get("MY_VAR")