【发布时间】:2018-07-12 19:08:37
【问题描述】:
这是我的application.properties 文件:
spring.datasource.url= jdbc:postgresql://localhost:5432/Crypto
spring.datasource.username=postgres
spring.datasource.password=wololo
spring.jpa.hibernate.ddl-auto=update
spring.datasource.initialization-mode=always
这是我的data.sql 文件:
INSERT INTO crypto(departure, details, lowest_price_date, lowest_price_ever, coin_name, url)
VALUES (null, null, null, 10, 'foooobs', 'http://foo.foo');
问题是每次我重新启动应用程序时,都会添加一条新记录,即使它存在于上一个会话中。我只想用数据初始化数据库一次,永远不要改变它。
有什么想法吗?
【问题讨论】:
-
如果您在 data.sql 文件中进行更改,例如添加一条新记录,该怎么办?在这种情况下应该怎么办?忽略该记录还是创建它?
-
它应该是这样工作的。如果您正在考虑另一种行为,那是您在尝试做某事。错误 :) 只需将
spring.jpa.hibernate.ddl-auto更改为spring.jpa.hibernate.ddl-auto=create-drop,每次您都会重新创建数据库。它非常适合开发。如果您需要 DB 的一次性初始化 - 考虑使用 smth.像FlyWay或删除data.sql并在您的数据库上手动运行该脚本
标签: java sql spring postgresql hibernate