【发布时间】:2019-02-04 06:19:17
【问题描述】:
鉴于理想情况下应该没有停机时间的 java 服务,我想将表的列类型从 varchar 更改为 longtext,同时保持服务处于活动状态。
该服务正在使用 spring --> jpa、hibernate 并与 mysql db 对话。
实体具有映射属性,我们称它为 foobar,用字符串表示。
所以现在它看起来像这样:
java 实体:
String foobarMySQL 专栏:
varchar(255) foobar
我想做一个表格修改,所以它会是这样的:
java 实体:
String foobarMySQL 专栏:
longtext foobar
问题:
如果我更改 mysql 列并保持 java 服务运行,它仍然能够读取/写入该列还是会抛出错误?
【问题讨论】:
-
最好的办法是尝试...
-
@Sharon Ben Asher 在我的情况下考虑到生产/开发环境的限制:没有。
-
你试试告诉我们怎么样?这种迁移最安全(也是最好)的方法总是(首先)在本地或开发环境中执行。如果它在那里工作,并且该环境与您的生产环境足够接近,请继续。
-
似乎很容易重新创建非生产环境中的情况......无论如何,鉴于您提到的限制,您有什么选择?您要根据此处的答案实施产品更改吗?
-
@SharonBenAsher 如果他的产品环境受到限制,因此他无法更新数据库,无论如何他都无法更改。
标签: java mysql hibernate jpa jdbc