Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Npm run migrate - (Strange bug) - Foreign Key Constraint did not get generate after undoing @loopback/authentication implementation.

未关闭
#733 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
25/100
Issue 类型
缺陷
描述清晰度
需要澄清
活跃度
停滞
技术栈
javascript, node.js, postgresql
领域
database

调研方向

在撤销身份验证实现后,使用 PostgreSQL 和 DEBUG=loopback:* npm run migrate 重现 Todo/TodoList SQL 数据库教程的迁移。将迁移输出与 issue 中预期的外键 ALTER TABLE 语句进行比较。完成标准是确定约束为何被省略,或将故障范围缩小到可复现的环境或设置差异。

由索引模型根据 Issue 内容生成。

描述

bug

https://github.com/loopbackio/loopback-next/issues/5709

As per above, when I was doing code debugging with JSON Web token Authentication feature for the Todo and TodoList tutorial yesterday, and I realised that I couldn't get far in making the user and user credential models to perform database migraiton, I decided to undo this feature and wanted to roll back my local features and revert back my working Todo and TodoList models database migraiton.

When performing the steps from this page all over again - https://loopback.io/doc/en/lb4/todo-list-tutorial-sqldb.html

I found the foreign key constraints for my Todo/TodoList table/model did not generate in my postgres database.

I was puzzled why it happened until I ran the following

DEBUG=loopback:* npm run migrate

In the logs, I was expecting the following entries to appear in the logs:

loopback:connector:postgresql SQL: ALTER TABLE "public"."todo" ADD CONSTRAINT "fk_todo_todoListId" FOREIGN KEY ("todolistid") REFERENCES "public"."todolist"(id) ON DELETE NO ACTION ON UPDATE NO ACTION +1ms
loopback:connector:postgresql:data {"command":"ALTER","rowCount":null,"oid":null,"rows":[],"fields":[],"_types":{"_types":{"arrayParser":{},"builtins":{"BOOL":16,"BYTEA":17,"CHAR":18,"INT8":20,"INT2":21,"INT4":23,"REGPROC":24,"TEXT":25,"OID":26,"TID":27,"XID":28,"CID":29,"JSON":114,"XML":142,"PG_NODE_TREE":194,"SMGR":210,"PATH":602,"POLYGON":604,"CIDR":650,"FLOAT4":700,"FLOAT8":701,"ABSTIME":702,"RELTIME":703,"TINTERVAL":704,"CIRCLE":718,"MACADDR8":774,"MONEY":790,"MACADDR":829,"INET":869,"ACLITEM":1033,"BPCHAR":1042,"VARCHAR":1043,"DATE":1082,"TIME":1083,"TIMESTAMP":1114,"TIMESTAMPTZ":1184,"INTERVAL":1186,"TIMETZ":1266,"BIT":1560,"VARBIT":1562,"NUMERIC":1700,"REFCURSOR":1790,"REGPROCEDURE":2202,"REGOPER":2203,"REGOPERATOR":2204,"REGCLASS":2205,"REGTYPE":2206,"UUID":2950,"TXID_SNAPSHOT":2970,"PG_LSN":3220,"PG_NDISTINCT":3361,"PG_DEPENDENCIES":3402,"TSVECTOR":3614,"TSQUERY":3615,"GTSVECTOR":3642,"REGCONFIG":3734,"REGDICTIONARY":3769,"JSONB":3802,"REGNAMESPACE":4089,"REGROLE":4096}},"text":{},"binary":{}},"RowCtor":null,"rowAsArray":false,"_prebuiltEmptyResultObject":null} +4m

But that ALTER TABLE "public"."todo" ADD CONSTRAINT "fk_todo_todoListId" FOREIGN KEY ("todolistid") REFERENCES "public"."todolist"(id) ON DELETE NO ACTION ON UPDATE NO ACTION did not show up at all.

I teared down the database, recreated it again, run npm run migrate. I still ended with the same result.

I even restarted my Postgres DB and my machine, performed the steps all over again - the same problem persists.

Out of frustration, I decided to recreate my loopback app from scratch again, and peform the db models migration again - just to help to regain my sanity back ensuring that I didn't do anything else silly that caused all this unexplained confusion. Sure enough the foreigh key constraint creation through the npm run migrate works this time around.

Thus I want to understand this - does importing @loopback/authentication models and tables feature cause the foreign key constraint script migraiton to stop working all of the sudden? Or is it purely coincidental it could be a random environment issue?

主要语言
JavaScript
星标
118
派生
183
平均合并
3 天 7 小时
30 天内合并 PR
9

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

loopbackio/loopback-connector-postgresql 的其他 Issue

查看 loopbackio/loopback-connector-postgresql 的全部 Issue

相似的 Issue

更多 JavaScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。