PostgreSQL - 是否可以将pg_large_object数据移植到同一数据库模式中的bytea列

时间:2014-08-27 12:07:13

标签: postgresql

在Java应用程序中,我使用Hibernate @Lob在PostgreSQL 9.x中存储大量内容(文件,图像,xml内容等)。 Hibernate自动将所述内容存储到pg_large_object表中。但是,在引用pg_large_object表的数据库表的更新操作期间,它会导致将相同数据的重复副本添加到pg_large_object中。相同数据的旧引用(在pg_large_object中)被放弃了。这是使用pg_large_object的副作用,即使我没有更新大内容。没有所有者的知识,此行为会增加数据库的大小。我已经知道我们可以在数据库中使用VACCUM配置来清理废弃的数据。但为了避免这种情况,我们更改了我们的java代码,意味着将所述列的数据类型更改为BYTEA而不是大对象(如果我们从hibernate实体中删除@Lob声明,它将自动映射为bytea类型)。 / p>

现在的问题是向后兼容性。如果我们更改现有表中列的数据类型,如何将现有生产数据迁移或移植到上述方案的新数据类型中。提前感谢您的反馈。

0 个答案:

没有答案