我的网站在本地运行良好,但是当我将其上传到heroku并尝试创建用户时,我会得到
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key
constraint fails (`heroku_58d91081036dbb1`.`users`, CONSTRAINT `users_role_id_foreign` FOREIGN KEY
(`role_id`) REFERENCES `roles` (`id`) ON DELETE CASCADE) (SQL: insert into `users` (`name`, `email`,
`password`, `updated_at`, `created_at`) values (Dominykas, d@s.com,
$2y$10$yZb.rSEmsLQCkd.5HStt1.9DH6jiBQbyiixlessIVjSKCGErx9E1K, 2019-12-02 13:00:02, 2019-12-02 13:00:02))
我发现,我的迁移默认值不起作用
$table->unsignedBigInteger('role_id')->default(2);
$table->foreign('role_id')->references('id')->on('roles')->onDelete('cascade');
因为当我播种新用户并提供role_id时,我不会收到此错误,但是如果将其保留为默认值,则会收到错误
我应该如何解决,也许我应该尝试其他托管服务提供商?
答案 0 :(得分:0)
好的,因此,如果您的网站在本地可以正常运行,但是在部署时会出现与Integrity constraint violation
之类的数据库相关的错误,这可能是因为您忘记了heroku将表增加了10,例如id会显示为:{{ 1}}
在我的情况下,我将默认值设置为2,这是其他表的外部ID,在heroku中,现在是11