【问题标题】:Prevent automatic table creation or drop when using `JdbcChannelMessageStore`使用 `JdbcChannelMessageStore` 时防止自动创建或删除表
【发布时间】:2020-10-08 08:49:25
【问题描述】:

我们想使用JdbcChannelMessageStore 在我们的应用程序中拥有一个持久队列。

但是,spring-integration-jdbc 中包含的 sql 脚本会导致以下数据库对象的自动创建(和删除?):

  INT_MESSAGE_IX1 
  INT_CHANNEL_MSG_DATE_IDX 
  INT_CHANNEL_MSG_PRIORITY_IDX 
  INT_MESSAGE 
  INT_MESSAGE_GROUP 
  INT_GROUP_TO_MESSAGE 
  INT_LOCK 
  INT_CHANNEL_MESSAGE 
  INT_METADATA_STORE 
  INT_MESSAGE_SEQ 

这不是我们在生产中不会有的行为。在那里,我们必须控制数据库中发生的一切。

有没有办法阻止加载这些脚本?

非常感谢您的回复。

【问题讨论】:

  • 您好,数据库策略由“spring.jpa.hibernate.ddl-auto”属性控制。如果您不希望自动模式更新,您可以将其设置为“none”,如果您只想在应用程序启动时检查它,则可以将其设置为“validate”“update”或“create-drop”通常用于开发阶段,因为它简化了数据库模式更新但应该在生产中有计划的行动。所以尝试“无”...

标签: spring spring-integration spring-integration-jdbc


【解决方案1】:

感谢 Gweltaz Niquel,我发现在使用内存数据库时,spring.jpa.hibernate.ddl-auto 属性默认设置为 create-drop。事实上,我在使用 H2 DB 时看到了这种行为。

对于外部数据库,默认设置为none

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-19
    • 2015-08-12
    相关资源
    最近更新 更多