Создать таблицу весной r2dbc - PullRequest
0 голосов
/ 24 июня 2019

У меня есть пружинное соединение r2dbc для базы данных postgresql, и я хотел бы создать таблицу,

, фактически эквивалентную SQL

CREATE TABLE IF NOT EXISTS name (id, bigint);

, как я могу это сделать, как кажется DatabaseClientтолько поддержка выбора / вставки?

Ответы [ 2 ]

0 голосов
/ 25 июня 2019

как сказал Томас Андольф в комментарии

.execute().sql() - это действительно правильный подход

, в моем случае мне нужно было бесконечно блокировать результат, прежде чем продолжить, поэтому мне нужно было добавить .fetch().all().collectList().block();

0 голосов
/ 24 июня 2019

Вам не нужно использовать DatabaseClient для создания ваших таблиц. Поэтому, когда я столкнулся с той же проблемой, что и вы, я сделал что-то вроде следующего кода:

 fun postgresProcess(config: PostgresConfig): PostgresProcess {
        val runtime = PostgresStarter.getDefaultInstance()
        val exec = runtime.prepare(config)
        val postgres = exec.start()
        // connecting to a running Postgres and feeding up the database
        val conn = DriverManager.getConnection("jdbc:postgresql://$host:$port/$database", username, password)
        conn.createStatement().execute("CREATE TABLE customer ( id SERIAL PRIMARY KEY, firstname VARCHAR(100) NOT NULL, lastname VARCHAR(100) NOT NULL);")
        return postgres
    }

В начале вы можете сделать что-то подобное и после того, как сможете использовать клиент базы данных.

Я помню, как пробовал пролететь безуспешно. Я хотел бы использовать DatabaseClient. Больше кода на моем репо github

...