diff --git a/cli/src/main/java/io/aklivity/zillabase/cli/internal/commands/start/ZillabaseStartCommand.java b/cli/src/main/java/io/aklivity/zillabase/cli/internal/commands/start/ZillabaseStartCommand.java index af845383..0dc74eef 100644 --- a/cli/src/main/java/io/aklivity/zillabase/cli/internal/commands/start/ZillabaseStartCommand.java +++ b/cli/src/main/java/io/aklivity/zillabase/cli/internal/commands/start/ZillabaseStartCommand.java @@ -216,6 +216,8 @@ protected void invoke( seedKafkaAndRegistry(config); + processInitSql(config); + processSql(config); createConfigServerKafkaTopic(config); @@ -338,10 +340,33 @@ private void startContainers( System.out.println("Verified containers are healthy"); } + private void processInitSql( + ZillabaseConfig config) + { + PgsqlHelper pgsql = new PgsqlHelper(config.risingwave, "postgres"); + + pgsql.connect(); + + if (pgsql.connected) + { + pgsql.process("", + """ + CREATE USER zillabase; + CREATE SCHEMA zb_catalog AUTHORIZATION postgres; + CREATE TABLE zb_catalog.zviews( + name VARCHAR PRIMARY KEY, + sql VARCHAR); + CREATE TABLE zb_catalog.ztables( + name VARCHAR PRIMARY KEY, + sql VARCHAR); + """); + } + } + private void processSql( ZillabaseConfig config) { - PgsqlHelper pgsql = new PgsqlHelper(config.risingwave); + PgsqlHelper pgsql = new PgsqlHelper(config.risingwave, "zillabase"); pgsql.connect(); @@ -2292,7 +2317,6 @@ CreateContainerCmd createContainer( } } - private static final class CreateRisingWaveFactory extends CreateContainerFactory { CreateRisingWaveFactory( @@ -2708,12 +2732,13 @@ private final class PgsqlHelper PgsqlHelper( - ZillabaseRisingWaveConfig config) + ZillabaseRisingWaveConfig config, + String user) { this.config = config; Properties props = new Properties(); - props.setProperty("user", "root"); + props.setProperty("user", user); props.setProperty("preferQueryMode", PreferQueryMode.SIMPLE.value()); this.url = "jdbc:postgresql://localhost:4567/%s".formatted(config.db); @@ -2757,11 +2782,11 @@ void process( String content = readSql(sql); if (content != null) { - execute(sql.getFileName().toString(), content); + process(sql.getFileName().toString(), content); } } - private void execute( + void process( String filename, String content) { diff --git a/pom.xml b/pom.xml index 43073892..000bb0bf 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,12 @@ com.github.docker-java docker-java-core - 3.3.6 + 3.4.1 com.github.docker-java docker-java-transport-httpclient5 - 3.3.6 + 3.4.1 jakarta.json.bind