0

更新:好吧,所以我调试了 Rails,发现它发生是因为我的两个表都命名相同。

validates_uniquness_of调用unscoped模型的类。unscoped返回遗留表中的所有行。

原始帖子:我正在创建将遗留数据从一个 Rails 应用程序迁移到另一个应用程序(两个数据库都是 Postgresql)。

我的新应用程序validates_uniqueness_of对其中一个模型进行了验证。

正如这里所解释的,我创建了与遗留数据库建立连接的遗留模型类(使用establish_connection :legacy)。在应用程序级迁移期间,我从旧表中复制模型数据,以在我的新应用程序中逐行创建新模型。该过程在第一次创建模型时失败,因为唯一性验证失败(即使新数据库仍然是空的)。

这让我相信validates_uniqueness_of出于某种原因也考虑了遗留数据库。

具有验证的模型表在旧数据库和新数据库中具有相同的名称。

4

0 回答 0