Как создать базу данных и пользователя в базе данных H2 в IDEA через файл скрипта? - PullRequest
0 голосов
/ 29 января 2020

Я не понимаю, как создать пользователя и базу данных через встроенную базу данных H2 в Intelij Idea

Можете ли вы написать пример создания базы данных и пользователя, пожалуйста, с синтаксисом h2?

Когда я пытаюсь запустить этот скрипт:

CREATE USER GUEST PASSWORD 'abc'; 

в этом файле createDatabaseAndUser.sql

в этой программе:

  Class.forName(JDBC_DRIVER);

        //STEP 2: Open a connection
        System.out.println("Connecting to database...");
        conn = DriverManager.getConnection(DB_URL, USER, PASS);

        //STEP 3: Execute a query
        ScriptRunner sr = new ScriptRunner(conn);
        //Creating a reader object
        Reader reader = new BufferedReader(new FileReader("C:\\PROJECTS\\src\\main\\resources\\createDatabaseAndUser.sql"));
        //Running the script
        sr.runScript(reader);

Я получил ошибку: Error executing: CREATE USER GUEST PASSWORD 'abc' . Cause: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "CREATE[*] USER GUEST PASSWORD 'abc' "; SQL statement: CREATE USER GUEST PASSWORD 'abc' [42000-199]

1 Ответ

0 голосов
/ 15 февраля 2020

CREATE USER GUEST PASSWORD 'abc'; действительно Syntax error in SQL statement. Потому что вы пишете команду в синтаксисе h2, но у вас есть расширение .sql в вашем файле миграции.

Я точно не знаю, как решить эту проблему с синтаксисом H2. Но вы можете решить эту проблему, просто выполнив миграцию с помощью команды SQL.

Попробуйте написать это в файле createDatabaseAndUser.sql:

CREATE USER Guest WITH PASSWORD = 'abc';
...