diff options
Diffstat (limited to 'src/auditordb')
-rw-r--r-- | src/auditordb/auditordb-postgres.conf | 3 | ||||
-rw-r--r-- | src/auditordb/plugin_auditordb_postgres.c | 23 | ||||
-rw-r--r-- | src/auditordb/test-auditor-db-postgres.conf | 4 |
3 files changed, 28 insertions, 2 deletions
diff --git a/src/auditordb/auditordb-postgres.conf b/src/auditordb/auditordb-postgres.conf index 9a6d39884..fe408c3bb 100644 --- a/src/auditordb/auditordb-postgres.conf +++ b/src/auditordb/auditordb-postgres.conf @@ -1,3 +1,6 @@ [auditordb-postgres] # Argument for Postgres for how to connect to the database. CONFIG = "postgres:///taler" + +# Where are the SQL files to setup our tables? +SQL_DIR = $DATADIR/sql/auditor/ diff --git a/src/auditordb/plugin_auditordb_postgres.c b/src/auditordb/plugin_auditordb_postgres.c index 7e6b7bf09..30b036c9e 100644 --- a/src/auditordb/plugin_auditordb_postgres.c +++ b/src/auditordb/plugin_auditordb_postgres.c @@ -80,6 +80,11 @@ struct PostgresClosure pthread_key_t db_conn_threadlocal; /** + * Directory with SQL statements to run to create tables. + */ + char *sql_dir; + + /** * Database connection string, as read from * the configuration. */ @@ -408,8 +413,8 @@ postgres_create_tables (void *cls) struct GNUNET_PQ_Context *conn; conn = GNUNET_PQ_connect (pc->connection_cfg_str, + pc->sql_dir, NULL, - es, NULL); if (NULL == conn) return GNUNET_SYSERR; @@ -3446,10 +3451,23 @@ libtaler_plugin_auditordb_postgres_init (void *cls) const char *ec; pg = GNUNET_new (struct PostgresClosure); + if (GNUNET_OK != + GNUNET_CONFIGURATION_get_value_filename (cfg, + "auditordb-postgres", + "SQL_DIR", + &pg->sql_dir)) + { + GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR, + "auditordb-postgres", + "SQL_DIR"); + GNUNET_free (pg); + return NULL; + } if (0 != pthread_key_create (&pg->db_conn_threadlocal, &db_conn_destroy)) { TALER_LOG_ERROR ("Cannnot create pthread key.\n"); + GNUNET_free (pg->sql_dir); GNUNET_free (pg); return NULL; } @@ -3469,6 +3487,7 @@ libtaler_plugin_auditordb_postgres_init (void *cls) GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR, "auditordb-postgres", "CONFIG"); + GNUNET_free (pg->sql_dir); GNUNET_free (pg); return NULL; } @@ -3483,6 +3502,7 @@ libtaler_plugin_auditordb_postgres_init (void *cls) "taler", "CURRENCY"); GNUNET_free (pg->connection_cfg_str); + GNUNET_free (pg->sql_dir); GNUNET_free (pg); return NULL; } @@ -3589,6 +3609,7 @@ libtaler_plugin_auditordb_postgres_done (void *cls) struct PostgresClosure *pg = plugin->cls; GNUNET_free (pg->connection_cfg_str); + GNUNET_free (pg->sql_dir); GNUNET_free (pg->currency); GNUNET_free (pg); GNUNET_free (plugin); diff --git a/src/auditordb/test-auditor-db-postgres.conf b/src/auditordb/test-auditor-db-postgres.conf index b08195eb8..924aef435 100644 --- a/src/auditordb/test-auditor-db-postgres.conf +++ b/src/auditordb/test-auditor-db-postgres.conf @@ -6,6 +6,8 @@ DB = postgres # Argument for Postgres for how to connect to the database. CONFIG = "postgres:///talercheck" +# Where are the SQL files to setup our tables? +SQL_DIR = $DATADIR/sql/exchange/ + [taler] CURRENCY = "EUR" - |