Skip to content

Commit f5aed5d

Browse files
committed
add jdbc configuration on postgres
1 parent 3d3d785 commit f5aed5d

File tree

2 files changed

+22
-52
lines changed

2 files changed

+22
-52
lines changed
Lines changed: 21 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,32 @@
1+
// Copyright (c) Cosmo Tech.
2+
// Licensed under the MIT license.
13
package com.cosmotech.common.postgres
24

3-
import org.springframework.beans.factory.annotation.Qualifier
45
import org.springframework.beans.factory.annotation.Value
56
import org.springframework.context.annotation.Bean
67
import org.springframework.context.annotation.Configuration
78
import org.springframework.jdbc.core.JdbcTemplate
89
import org.springframework.jdbc.datasource.DriverManagerDataSource
9-
import javax.sql.DataSource
1010

1111
@Configuration
1212
class PostgresConfiguration {
13-
@Value("\${csm.platform.internalResultServices.storage.admin.username}")
14-
private lateinit var adminStorageUsername: String
15-
@Value("\${csm.platform.internalResultServices.storage.admin.password}")
16-
private lateinit var adminStoragePassword: String
17-
@Value("\${csm.platform.internalResultServices.storage.host}") private lateinit var host: String
18-
@Value("\${csm.platform.internalResultServices.storage.port}") private lateinit var port: String
19-
@Value("\${csm.platform.internalResultServices.storage.db.name}") private lateinit var dbName: String
20-
@Value("\${csm.platform.internalResultServices.storage.db.schema}") private lateinit var schema: String
21-
22-
private val jdbcdriverClass = "org.postgresql.Driver"
23-
24-
@Bean
25-
fun adminDatasource(): DriverManagerDataSource {
26-
val dataSource =
27-
DriverManagerDataSource(
28-
"jdbc:postgresql://$host:$port/$dbName", adminStorageUsername, adminStoragePassword)
29-
dataSource.setDriverClassName(jdbcdriverClass)
30-
return dataSource
31-
}
32-
33-
@Bean
34-
fun adminJdbcTemplate(
35-
@Qualifier("adminDatasource") dataSource: DataSource
36-
): JdbcTemplate {
37-
return JdbcTemplate(dataSource)
38-
}
39-
}
40-
41-
fun JdbcTemplate.existDB(name: String): Boolean {
42-
return this.queryForList("SELECT * FROM pg_catalog.pg_database WHERE datname='$name'").size == 1
43-
}
44-
45-
fun JdbcTemplate.existTable(name: String): Boolean {
46-
return this.queryForList(
47-
"SELECT * FROM information_schema.tables " + "WHERE table_name ilike '${name}'")
48-
.size >= 1
49-
}
50-
51-
fun String.toDataTableName(isProbeData: Boolean): String =
52-
(if (isProbeData) "P_$this" else "CD_$this").lowercase()
53-
54-
fun JdbcTemplate.createDB(name: String, comment: String? = null): String {
55-
this.execute("CREATE DATABASE \"$name\"")
56-
if (comment != null) this.execute("COMMENT ON DATABASE \"$name\" IS '$comment'")
57-
return name
58-
}
59-
60-
fun JdbcTemplate.dropDB(name: String) {
61-
if (this.existDB(name)) this.execute("DROP DATABASE \"$name\"")
13+
@Value("\${csm.platform.internalResultServices.storage.admin.username}")
14+
private lateinit var adminStorageUsername: String
15+
@Value("\${csm.platform.internalResultServices.storage.admin.password}")
16+
private lateinit var adminStoragePassword: String
17+
@Value("\${csm.platform.internalResultServices.storage.host}") private lateinit var host: String
18+
@Value("\${csm.platform.internalResultServices.storage.port}") private lateinit var port: String
19+
@Value("\${csm.platform.internalResultServices.storage.datasets.name:cosmotech}")
20+
private lateinit var dbName: String
21+
22+
private val jdbcdriverClass = "org.postgresql.Driver"
23+
24+
@Bean
25+
fun adminJdbcTemplate(): JdbcTemplate {
26+
val dataSource =
27+
DriverManagerDataSource(
28+
"jdbc:postgresql://$host:$port/$dbName", adminStorageUsername, adminStoragePassword)
29+
dataSource.setDriverClassName(jdbcdriverClass)
30+
return JdbcTemplate(dataSource)
31+
}
6232
}

config/application-dev.sample.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ csm:
117117
writer:
118118
password: "[fill-this-value]"
119119
username: cosmotech_api_writer
120-
db:
120+
datasets:
121121
name: cosmotech
122122
schema: datasets
123123

0 commit comments

Comments
 (0)