Google Cloud App Engine + постоянный H2 + весенняя загрузка JPA - PullRequest
0 голосов
/ 28 марта 2020

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

org.h2.jdbc.JdbcSQLException: Error while creating file "/srv/data" [90062-196]
at org.h2.message.DbException.getJdbcSQLException (DbException.java:345)
at org.h2.message.DbException.get (DbException.java:179)
at org.h2.message.DbException.get (DbException.java:155)
at org.h2.store.fs.FilePathDisk.createDirectory (FilePathDisk.java:274)
at org.h2.store.fs.FileUtils.createDirectory (FileUtils.java:42)
at org.h2.store.fs.FileUtils.createDirectories (FileUtils.java:309)
at org.h2.store.FileLock.lockFile (FileLock.java:342)
at org.h2.store.FileLock.lock (FileLock.java:135)
at org.h2.engine.Database.open (Database.java:662)
at org.h2.engine.Database.openDatabase (Database.java:276)
at org.h2.engine.Database.<init> (Database.java:270)
at org.h2.engine.Engine.openSession (Engine.java:64)
at org.h2.engine.Engine.openSession (Engine.java:176)
at org.h2.engine.Engine.createSessionAndValidate (Engine.java:154)
at org.h2.engine.Engine.createSession (Engine.java:137)
at org.h2.engine.Engine.createSession (Engine.java:27)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer (SessionRemote.java:354)
at org.h2.jdbc.JdbcConnection.<init> (JdbcConnection.java:116)
at org.h2.jdbc.JdbcConnection.<init> (JdbcConnection.java:100)
at org.h2.Driver.connect (Driver.java:69)
at com.zaxxer.hikari.util.DriverDataSource.getConnection (DriverDataSource.java:138)
at com.zaxxer.hikari.pool.PoolBase.newConnection (PoolBase.java:354)
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry (PoolBase.java:202)
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry (HikariPool.java:473)
at com.zaxxer.hikari.pool.HikariPool.checkFailFast (HikariPool.java:554)
at com.zaxxer.hikari.pool.HikariPool.<init> (HikariPool.java:115)
at com.zaxxer.hikari.HikariDataSource.getConnection (HikariDataSource.java:112)

И есть мое application.properties

spring.h2.console.enabled=true
spring.datasource.url=jdbc:h2:file:./data/planningDb;AUTO_SERVER=TRUE
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect

Мне интересно, имею ли я право писать в файл H2 в приложении Engine;

Спасибо

1 Ответ

0 голосов
/ 30 марта 2020

App Engine ограничивает каталоги, которые вы можете записать, в зависимости от того, какое время выполнения вы используете, поэтому в стандарте GAE вы не можете писать вне / tmp. Также имейте в виду, что наличие базы данных в экземплярах GAE создаст базу данных, созданную для каждого экземпляра, и содержимое будет потеряно при каждом удалении / перезапуске экземпляра.

Я бы порекомендовал вам использовать одну из опций Cloud SQL или для создания экземпляра GCE для базы данных , вы можете избежать потери данных. Если вы решите использовать экземпляр GCE, вам придется поддерживать его самостоятельно, экземпляры Cloud SQL управляются Google.

...