如何在 Vapor 3 中配置 Fluent/MySQL 数据库连接而不将密码输入 configure.swift?
How do I configure a Fluent/MySQL database connection without putting my password in configure.swift in Vapor 3?
除了 "register a DatabasesConfig
struct to your services."
之外,Vapor 3 documentation 没有说太多关于数据库配置的信息
教程(如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 配置文件。这个功能完全没有了吗?我在当前文档中找不到任何提及。
您可以添加一个环境变量,并像这样加载它:
Environment.get("MY_VAR")
最流行的方法是使用环境变量。您可以在 Xcode 方案或终端中设置它们:
export DB_PASSWORD=root
然后在你的配置中获取它:
guard let password = Environment.get("DB_PASSWORD") else {
throw Abort(.internalServerError)
}
除了 "register a DatabasesConfig
struct to your services."
教程(如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 配置文件。这个功能完全没有了吗?我在当前文档中找不到任何提及。
您可以添加一个环境变量,并像这样加载它:
Environment.get("MY_VAR")
最流行的方法是使用环境变量。您可以在 Xcode 方案或终端中设置它们:
export DB_PASSWORD=root
然后在你的配置中获取它:
guard let password = Environment.get("DB_PASSWORD") else {
throw Abort(.internalServerError)
}