gpt4 book ai didi

ruby-on-rails - 如何在 Rails 中使用具有外键约束的数据库中的测试和装置?

转载 作者:行者123 更新时间:2023-12-01 03:47:27 26 4
gpt4 key购买 nike

我正在使用 Rails 4.1 和 PostgreSQL,我正在使用 foreigner gem创建外键约束。但是我在使用 fixtures 时遇到了一些问题.

当我运行时:

spring rake test

我收到如下错误:
ActiveRecord::InvalidForeignKey: PG::ForeignKeyViolation: ERROR:  update or delete on table "pessoas" violates foreign key constraint "pacientes_pessoa_id_fk" on table "pacientes"
DETAIL: Key (id)=(980190962) is still referenced from table "pacientes".
: DELETE FROM "pessoas"

我找到了一个解决方法:重新创建数据库:
RAILS_ENV=test spring rake db:reset && spring rake test

当我尝试使用 rake db:fixture:load 为开发数据库设置固定装置时,出现某种错误。 .

我已经尝试在 test_helper.rb 中更改夹具加载顺序,但这还不够。

有人知道怎么修吗?我在网上搜索了很多,但没有找到解决方案。

最佳答案

所以,我确信这有效,尽管我不能说这是一个实际正确的解决方法。

您需要使用户成为 super 用户。

在我使用 Cloud 9 的情况下,我登录的用户是“ubuntu”。

我输入 sudo -u postgres psql (实际上 sudo 两次才能让 C9 正确访问)并输入:

更改用户 ubuntu super 用户;

退出,它会起作用。

如果您运行 tail log/test.rb,您可以在运行集成测试时看到 PG::InsufficientPrivlege: ERROR,因此用户没有足够的权限。你不会想在生产中这样做,但我的生产是在 Heroku 上进行的,所以我很好。

关于ruby-on-rails - 如何在 Rails 中使用具有外键约束的数据库中的测试和装置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25628072/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com