Среди результатов, которые я нашел, конфигурация была либо выполнена с жестко запрограммированными данными: р>
val database = Database.connect(
url = "jdbc:h2:mem:test;DB_CLOSE_DELAY=-1",
user = "root",
driver = "org.h2.Driver",
password = "",
)
или использование переменных системной среды: как подключиться к Postgres с помощью Kotlin/Ktor с запуском плагина
Если возможно, я бы хотел избежать их использования методы.
Насколько я понял, чтобы использовать переменные, не раскрывая их, мне пришлось создать файл .properties, что я и сделал. Однако я не знаю, как загрузить его значения в проект Ktor. Я бы хотел, чтобы мой файл application.yaml выглядел так:
postgres:
url: $POSTGRES_URL
user: $POSTGRES_USER
password: $POSTGRES_PASSWORD
Я также мог бы поместить свои жестко запрограммированные идентификаторы в этот файл и добавить их в свой файл .gitignore. Но я пришел к выводу, что это неправильно, поскольку в документации упоминается, что следует использовать переменные среды.
Что я пробовал:< /p>
- Я создал файлы конфигурации development.properties и Production.properties в корне проекта со следующим содержимым:
Я создал файлы конфигурации development.properties и Production.properties в корне проекта со следующим содержимым: li>
POSTGRES_USER=
POSTGRES_PASSWORD=
- В моем файле Databases.kt я попытался получить значения из файла свойств, но они имеют значение NULL
val properties = Properties()
val propertiesFile = File("development.properties")
if (!propertiesFile.exists()) {
throw FileNotFoundException("Postgres configuration file not found")
}
val url = properties.getProperty("POSTGRES_URL")
val user = properties.getProperty("POSTGRES_USER")
val password = properties.getProperty("POSTGRES_PASSWORD")
println(url)
println(user)
println(password)
// val database =
// Database.connect(
// url,
// user = user,
// driver = "org.h2.Driver",
// password = password
// )
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... le-in-ktor
Мобильная версия