db2 如何正确/最安全地更改数据库和JPAMap中的列类型?[已关闭]

chhqkbe1  于 12个月前  发布在  DB2
关注(0)|答案(1)|浏览(138)

已关闭,此问题需要更focused。它目前不接受回答。
**想改善这个问题吗?**更新问题,使其只关注editing this post的一个问题。

26天前关闭
Improve this question
我有如下的hibernate字段:

@Column(name = MY_COLUMN)
public Long myColumn;

DB2数据库中的MY_COLUMN列当前是这样定义的:

ALTER TABLE MY_TABLE
  ADD MY_COLUMN BIGINT;

结果是这个MY_COLUMN字段应该被定义为DECIMAL(4,1),因此我必须相应地更新DB和JPA字段Map中的该列。
什么是正确的/最安全的方法来做到这一点?
1.首先更新DB,然后更新JPAMap
1.首先更新JPAMap,然后更新DB

  • 请注意:我可以立即更新JPAMap的代码,但是要更改DB列,我需要让其他人审查和执行该命令,这会引入一些延迟时间。

我在想:

  • 如果JPA首先更新,代码是否会被破坏,直到DB列被更改?
  • 在将JPAMap的更改推送到远程存储库之前,我应该等到DB列更新吗?
  • 在两者都改变之前,它是否一定会被打破一段时间?
  • 是否取决于所涉及的数据库?

提前感谢任何洞察力。

jgwigjjp

jgwigjjp1#

您是否使用Flyway或其他数据库迁移工具?
要做的是,IMO,用SQL修改数据库,然后修改JPA实体。
如果您使用例如。Flyway,您可以将这两个步骤合并结合起来,并在应用程序的下一次启动时自动执行。没有什么是这样破碎的。
如果您不使用数据库迁移工具,则需要准备SQL语句,仅为用户关闭应用程序,使用新实体发布新代码并执行SQL。但我不建议这么做。如果您这样做,请创建备份。

相关问题