

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 更新应用程序
<a name="update-app"></a>

数据库迁移从来都不是仅于限数据库的迁移。您必须查看使用数据库的应用程序，以确保它在新数据库中按预期运行。如果您只是重新托管或重新构建同一个数据库引擎，则更改微乎其微，但如果您决定迁移到新的数据库引擎，则更改可能会更繁多。

如果您的应用程序依赖对象关系映射 (ORM) 与数据库进行交互，则在迁移到新的数据库引擎时并不需要很多更改。但是，如果您的应用程序具有自定义的数据库交互或动态构建的 SQL 查询，则更改可能会很大。查询格式可能会存在差异，需要加以纠正，以确保应用程序按预期运行。

例如，在 Oracle 中，将字符串与 `NULL` 连接将返回原始字符串。但是，在 PostgreSQL 中，将字符串与 `NULL` 连接将返回 `NULL`。另一个例子是如何处理 `NULL` 和空字符串。在 PostgreSQL 中，`NULL` 和空字符串是两回事，而像 Oracle 这样的数据库则以相同的方式处理它们。在 Oracle 中，如果插入列值设置为 `NULL` 或空字符串的行，则可以使用 `where` 子句提取这两种类型的值：`where <mycolumn> is NULL`。在 PostgreSQL 中，此 `where` 子句将只返回列值实际为 NULL 的一行；它不会返回字符串值为空的行。有关这些区别的更多信息，请参阅 [AWS Database Migration Service 资源](https://aws.amazon.com/dms/resources/) 页面上列出的迁移行动手册。